美文网首页
套接字(Socket)

套接字(Socket)

作者: 归来的良人 | 来源:发表于2016-03-14 12:08 被阅读89次

套接字(socket)是通信的基石,套接字链接需要五个元素:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远程主机的 IP地址,远程主机的协议端口;

套接字(Socket)连接需要的三个步骤:1.服务器监听,2.客户端请求,3.连接确认;

套接字(Socket)连接的作用:应用层通过传输层进行通信时,TCP会遇到同时为多个应用程序提供并发服务的问题,多个TCP连接或多个应用程序可能会同时使用同一个协议端口传输数据。为了区分不同运用程序和连接,操作系统为应用程序和TCP/IP协议提供了套接字(Socket)接口应用层和传输层可以通过Socket接口,区分来自不同应用程序和网络通信的通信,实现数据传输的并发服务。

示例:

//server,本例服务器与客户端都在本机,使用8888端口,本地ip:127.0.0.1

Map<Socket,ObjectOutputStream> soosMap ;

Map<Socket,ObjectInputStream> sois;

ServerSocket ss = new ServerSocket(8888);

while(true){

Socket s = ss.accept();//socket通信是阻塞的,当没有接收到ClientSocket连接请求时,程序一直阻塞,不向下执行,直到收到连接请求

ObjectOutputStream oos = new ObjectOutputStream();

soosMap.put(s,oos);//为每一个客户端产生一个输出流,进行通信,同样的,客户端也有一个输入流用于通信;在客户端也创建一个输入流来接受服务器发出的消息

new AcceptMessageThread(s).start();//消息监听线程一直监听客户端,等待消息通信;

}

Thread AcceptMessageThread extends Thread{

private Socket s;

public AcceptMessageThread(Socket s){

this.s = s;

}

public void run(){

ObjectInputStream ois = new ObjectInputStream(s.getInputStream);//为每一个socket连接对象创建一个对象输入流来接收客户端的通信消息,在客户端也同样创建一个输出流来发送消息

while(true){//保持监听

Message msg = ois.readObject();

}

}

}

//Client

private Socket s;

private ObjectOutputStream oos;

private ObjectInputStream ois;

private void initClient() {

while(true){

try {

s =new Socket("127.0.0.1",8888);

oos = new ObjectOutputStream(s.getOutputStream());

ois = new ObjectInputStream(s.getInputStream());

break;

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

相关文章

  • iOS 原生Socket和CocoaAsyncSocket框架的

    一、Socket到底是什么? 1、Socket原理 1.1、套接字(Socket)概念 套接字(Socket)是通...

  • day19

    socket套接字 socket又叫套接字,实现网络通信的python通过提供socket标准库来支持socket...

  • 2018-09-12 day18网络编程

    1.socket套接字 socket又叫套接字,就是进行数据通信两端。分为服务端套接字和客户端套接字 套接字编程:...

  • Socket

    Socket socket是套接字,多指传输层网络接口。 Socket和SocketServer是基于套接字的服务...

  • Python基础语法-3

    socket套接字使用流程:1.创建套接字2.使用套接字收/发数据3.关闭套接字 创建一个TCP socket 创...

  • Socket 网络编程(一)

    Socket Socket,又称“套接字”,应用程序通常通过“套接字”向网络发出请求或应答网络请求。 Socket...

  • CocoaAsyncSocket --Socket学习

    Socket理论 套接字(Socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信...

  • iOS 网络(三)-Socket

    一、Socket原理 1.套接字(Socket)概念 套接字(Socket)是通信的基石,是支持TCP/IP协议的...

  • 网络通信-----Socket

    Socket:又称套接字,底层要建立连接通道,通过套接字建立连接,向网络发出应答或请求 套接字(socket)是通...

  • 浅谈Linux C Socket编程

    Socket socket类型 流格式套接字(SOCK_STREAM) 数据报格式套接字(SOCK_DGRAM) ...

网友评论

      本文标题:套接字(Socket)

      本文链接:https://www.haomeiwen.com/subject/oysflttx.html