网络编程之TCP

 

TCP编程中,如果要完成通信,通信双方必须要创建socket,通过socket完成通信。

 

TCP通信步骤

1、服务器启动ServerSocket作为通信的Server端,等待客户端链入。

2、 客户端创建Socket作为通信的Client端

3、Client端链入Server端后建立可靠的双向的持续性的点对点的通讯连接,即可通信。

  TCP服务器和客户端的基本创建如下:

  服务器:

public static void main(String[] args) {
		System.out.println("服务器启动。。。");
		
		try {
			//1.创建服务器
			ServerSocket serverSocket=new ServerSocket(9000);
			//2.连接客户端
			Socket accept = serverSocket.accept();
			System.out.println(accept.getInetAddress().getHostAddress()+"连入!");	
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

  客户端:

public static void main(String[] args) {
		System.out.println("客户端运行。。。");
		
		try {
			//1.创建客户端
			Socket socket=new Socket("192.168.2.241",9000);
			
			
			
			
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		

	}

  

    

    客户端向服务器发送一条信息如下:

  服务器:

public static void main(String[] args) {
		System.out.println("服务器启动。。。");
		
		try {
			//1.创建服务器
			ServerSocket serverSocket=new ServerSocket(9000);
			//2.连接客户端
			Socket accept = serverSocket.accept();
			System.out.println(accept.getInetAddress().getHostAddress()+"连入!");	
			
			//3.读取客户端发来的信息
			InputStream inputStream = accept.getInputStream();
			int len;
			byte[] buf=new byte[1024];			
			 len = inputStream.read(buf);
			String string=new String(buf, 0, len, "UTF-8");
			System.out.println("客户端向服务器发来的信息:"+string);
		
		
			//关闭通道
			inputStream.close();
		
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

  

   客户端: 

  

public static void main(String[] args) {
		System.out.println("客户端运行。。。");
		
		try {
			//1.创建客户端
			Socket socket=new Socket("192.168.2.241",9000);
			
			//2.向服务器发送数据
			OutputStream outputStream=socket.getOutputStream();
			String string="Ig niubi";
			byte[] buf=string.getBytes("UTF-8");
			outputStream.write(buf);
			socket.shutdownOutput();
			System.out.println("信息发送完成!");
			
										
			outputStream.close();
			
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	
		

	}

  

猜你喜欢

转载自www.cnblogs.com/luojack/p/10846704.html