参考博客:https://blog.csdn.net/shuux666/article/details/124023652
基本的Socket编程:
本实例介绍Socket编程的基本步骤。启动Socket服务后,再打开Socket刻画段,在输入框中输入消息,然后发送给服务器端,服务器端将收到的消息返回到客户端。
关键技术:
Socket编程的关键技术如下;
—–Socket服务器端需要在某个端口上开启服务端类型的Socket,即java.net.ServerSocket。通过他的accept方法等待并接收客户端的请求,返回的是一个java.netSocket对象,如果一直没有客户端请求,那么accept()方法将会一直等待。
—-Socket客户端根据服务器端的IP地址(域名)和端口号创建一个Socket对象,连接服务器端。
—–服务器端和客户端都持有一个Socket对象,服务器端的Socket从服务器端指向客户端,而客户端的Socket从客户端指向服务器端,这就像在客户端和服务器端建立了两条单向的管道。
—通过Socket类提供的getOutputStream方法获得Socket的输出流,getInputStream方法获得Socket输入流。
服务器端ServerSocket
在服务器端选择一个端口号,在指定端口上等待客户端发起连接
构造方法:
ServerSocket(int port) 创建绑定到特定端口的服务器套接字
常用方法:
Socket accept() 侦听并接收到此套接字的连接
void close() 关闭此套接字
启动服务:
ServerSocket ss = new ServerSocket(端口号);
等待客户端发起连接,连接后会建立起通道:Socket socket = ss.accept();
客户端Socket
我们经常使用的就是客户端
构造方法:
Socket(String host,int port) 创建一个流套接字,并将其连接到指定主机上的指定端口号
常用方法:
InputStream getInputStream() 返回此套接字的输入流
OutputStream getOutputStream() 返回此套接字的输出流
void close() 关闭此套接字
新建Socket对象,连接指定IP指定的端口
Socket s = new Socket(IP,port);
从Socket获取双向的流:
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();