1. 两个应用程序通过一个双向的网络通信连接实现数据交换,每一端为一Socket。
2.java.net包下其中有两个类Socket和ServerSocket。-------TCP连接
(1)Socket:此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器间通信的端点。
(2)ServerSocket:此类实现服务器套接字。
(3)TCP和UDP端口,各65536个。
简单的获取连接代码如下:
服务器端:
public class TestServer {
public static void main(String[] args) {
int num=0;
try {
//指定端口号,以便客户端连接
ServerSocket ss=new ServerSocket(8888);
//死循环,一直在监听
while(true){
//获取客户端连接
Socket s=ss.accept();
num++;
System.out.println("a client "+num+" connect");
}
} catch (IOException e) {
e.printStackTrace();
}
}
客户端:
public class TestClient {
public static void main(String[] args) {
try {
Socket s=new Socket("127.0.0.1",8888);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
双方传递内容
以客户端向--->服务器端发送内容
服务器端代码:
//指定端口号,以便客户端连接
ServerSocket ss=new ServerSocket(8888);
//死循环,一直在监听
while(true){
//获取客户端连接
Socket s=ss.accept();
//获取客户端传输的内容
InputStream is=s.getInputStream();
DataInputStream dis=new DataInputStream(is);
System.out.println(dis.readUTF());
客户端代码:
//连接服务器端,通过8888端口
Socket s=new Socket("127.0.0.1",8888);
//获取输出流
OutputStream os=s.getOutputStream();
//包装下
DataOutputStream dos=new DataOutputStream(os);
//输出流
dos.writeUTF("hello server!");
常用方法
|
|
Socket | accept() 侦听并接受到此套接字的连接。此方法在连接传入之前一直阻塞。 |
|
| Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。 |
int | getPort() 返回此套接字连接到的远程端口 |