什么是socket?
应用层通过传输层传输数据时,TCP或UDP会遇到同时为多个应用进程提供并发的服务, 而多个TCP连接或多个应用程序进程使用同一个TCP协议端口.
为了区别不同的连接和进程,许多计算机操作系统为了应用程序与TCP/IP协议交互提供了称为套接字(socket)的接口,所以,套接字是应用程序和TCP/UDP之间通信的门
Socket描述了一个IP、端口对。它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发送的这些消息。所以,Socket一定包含了通信的双发,即客户端(Client)与服务端(server)
Client
package com.mtlk.wd;
import java.io.OutputStream;
import java.net.Socket;
public class ClientDemo {
public static void main(String[] args) throws Exception{
Socket soc = new Socket("127.0.0.1",9000);
OutputStream ost = soc.getOutputStream();
String str = "Hello world";
ost.write(str.getBytes());
soc.close();
}
}
Server
package com.mtlk.wd;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class ServerDemo {
public static void main(String[] args) throws Exception{
ServerSocket ss = new ServerSocket(9000);
Socket s = ss.accept();
InputStream is = s.getInputStream();
Scanner sc = new Scanner(is);
System.out.println(sc.next());
ss.close();
s.close();
}
}