java 套接字 socket(编程)

Socket也叫套接字。
Socket编程也叫套接字编程也叫网络编程。

Socket编程有3个要素必须满足,才能进行通信。
1、IP地址
2、端口号
3、使用某种传输协议(TCP、UDP)

TCP:
客户端:
第一步:创建一个Socket对象。需要指定连接哪个IP,指定端口号。
(连接指定的服务器)
第二步:获取输出流
第三步:写入要发送的数据
第四步:关闭流(try with resource或finally里关)

服务器:
第一步:创建服务端socket对象,这个服务器socket与客户端socket不一样
是一个特殊的socket,这个socket要监听一个端口号。
第二步:开始监听 (accept方法)。一旦有客户端socket连接了这个端口,就
会创建一个反向的socket与之相连。此时就建立了一个通道。所有的数据
在通道里传输。
第三步:获取输入流
第四步:从输入流里读取数据
第五步:关闭 反向socket (服务器的socket不用关)

UDP:
一个数据报最大是64k。传输少量信息,而且对安全要求不高的时候,可以使用
UPD。如果传输信息量比较大,使用TCP。
客户端
第一步:创建一个DatagramSocket
第二步:创建一个DatagramPacket(创建它的时候,需要InetAddress,还需要
数据,端口号)
第三步:发送数据报包:ds.send(dp);
第四步:关闭DatagramSocket(try with resource)

服务端:
第一步:创建一个DatagramSocket(监听一个端口)
第二步:创建一个DatagramPacket用于接收数据。
第三步:接收数据 ds.receive(dp)
第四步:提取拿到的包的内容,并使用
第五步:关闭DatagramSocket(try with resource)

如何查看本机的IP地址?
第一步:win+R
第二步:输入cmd,回车
第三步:ipconfig 回车

public class ClientTCP {

public static void main(String[] args) {
	try(Socket s = new Socket("10.10.15.191",12306);
			InputStream is = System.in;
			InputStreamReader isr = new InputStreamReader(is);
			BufferedReader br = new BufferedReader(isr);
			
			
			
			OutputStream os = s.getOutputStream();
            OutputStreamWriter osw = new OutputStreamWriter(os);
            BufferedWriter bw = new BufferedWriter(osw);) {
		
		String msg = null;
		while((msg=br.readLine())!=null) {
			bw.write(msg);
			bw.newLine();
			bw.flush();
		}

		
	} catch (IOException e) {
		e.printStackTrace();
	}
	

}
}

public class ServiceTCP {
public static void main(String[] args) {
	ServerSocket ss = null;
	try {
		ss = new ServerSocket(12306);
	} catch (IOException e1) {
		e1.printStackTrace();
	}
		try(Socket s = ss.accept();) {
				
			
			InputStream is = s.getInputStream();
			InputStreamReader isr = new InputStreamReader(is);
			BufferedReader br = new BufferedReader(isr);
			String msg = null;
			while((msg=br.readLine())!=null) {
				br.readLine();
		
			}
			
			System.out.println(msg);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
}

猜你喜欢

转载自blog.csdn.net/weixin_43791238/article/details/89242743