(1)使用TCP编写客服端和服务端

(1)使用TCP编写客服端和服务端

此demo的要先启动服务端,否则报错,因为TCP是可靠协议,所以没有对应的服务端时会报错

一.编写TCP协议服务端

 1  package demo.soket.tcp;
 2  3   import java.io.IOException;
 4   import java.io.InputStream;
 5   import java.net.ServerSocket;
 6   import java.net.Socket;
 7  8   //TCP协议服务端
 9   public class Server {
10       public static void main(String[] args) {
11           /**
12            * 1.创建服务端ServerSocket对象
13            * 2.监听socket连接
14            * 3.通过返回的socket对象来获取io流里面的数据
15            * 4.打印数据
16            */
17           //1.
18           ServerSocket server=null;
19           try {
20               server=new ServerSocket(10086);
21               //2.
22               Socket socket=server.accept();
23               //3.
24               InputStream in=socket.getInputStream();
25               byte[] b=new byte[1024];
26               int len=0;
27               while((len=in.read(b))!=-1) {
28                   System.out.println(new String(b,0,len));
29               }
30               
31           } catch (IOException e) {
32               e.printStackTrace();
33           }
34       }
35   }

 

二.编写TCP协议客服端

 1 package demo.soket.tcp;
 2  3   import java.io.IOException;
 4   import java.io.OutputStream;
 5   import java.net.Socket;
 6   import java.net.UnknownHostException;
 7  8   /**
 9    * TCP特点:
10    * 1.建立连接,形成传输数据的通道
11    * 2.在链接中进行大量数据传输
12    * 3.通过三次握完成连接,是可靠协议,所以没有对应的服务端时会报错
13    * 4.必建立连接,效率会稍低些
14    * @author Administrator
15    *
16    */
17   public class Client {
18       public static void main(String[] args) {
19           /**
20            * 1.创建一个客服端的socket对象
21            * 2.建立连接
22            * 3.通过io流在管道里面传输数据
23            * 写数据:输出流 getOutputStream() 
24            * 接收数据:输入流 getInputStream() 
25            * 4.关闭socket
26            */
27           //1.|2.
28           Socket client=null;
29           try {
30               client=new Socket("192.168.95.2",10086);
31               //3.
32               OutputStream os=client.getOutputStream();
33               os.write("TCP第一个客户端发送信息".getBytes());
34           } catch (UnknownHostException e) {
35               e.printStackTrace();
36           } catch (IOException e) {
37               e.printStackTrace();
38           }finally {
39               //4.
40               if(client!=null) {
41                   try {
42                       client.close();
43                   } catch (IOException e) {
44                       e.printStackTrace();
45                   }
46               }
47           }
48       }
49   }
50

 

 

三 .demo运行

 

 

posted @ 2020-07-08 15:42  憨憨青年  阅读(229)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css