socket的概述:TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字(socket)或插口。套接字用(IP地址:端口号)表示。
它是网络通信过程中端点的抽象表示,包含进行网络通信必需的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远程主机的IP地址,远程进程的协议端口。
服务端和客户端的简单通信
服务端
/**
* 服务端
* @author Administrator
*
*/
public class Server {
public static void main(String[] args) throws IOException {
//创建一个服务端 并设定端口号为6666(相当于启动一只猫 端口号为8080)
ServerSocket server = new ServerSocket(6666);
System.out.println("服务端已开启");
//接收服务端发送过来的对象(此处会堵塞 )
Socket accept = server.accept();
System.out.println("已连接到客户端:"+accept.getInetAddress());
//获取客户端输入流信息
InputStream in = accept.getInputStream();
byte[] b = new byte[1024];
int len = in.read(b);
System.out.println("客户端发送内容为:" + new String(b,0,len));
//给客户端返回信息
OutputStream out = accept.getOutputStream();
out.write("你好 世界".getBytes());
//关闭
accept.close();
}
}
客户端
/**
* 客户端
* @author Administrator
*
*/
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
//创建客户端并连接到指定服务端
Socket client = new Socket("127.0.0.1",6666);
//往服务端发送信息
client.getOutputStream().write("你好 java".getBytes());
//接收服务端的信息
InputStream in = client.getInputStream();
byte[] b = new byte[1024];
int len = in.read(b);
System.out.println("客户端发送内容为:" + new String(b,0,len));
//关闭
client.close();
}
}