zoukankan      html  css  js  c++  java
  • (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运行

     

  • 相关阅读:
    在C#中运用SQLDMO备份和恢复SQL Server数据库(转)
    c#中分割字符串的几种方法
    MS SQL Server中的日期格式化大全
    IBM基于双机热备份配置
    C#实现Des加密和解密
    ASP.NET备份恢复SqlServer数据库
    WEB 打印的相关技术分析
    通过身份证号码取得生日的一段代码(支持18位和15位身份证)
    C#的四种排序算法
    .net下读写配置文件app.config方法
  • 原文地址:https://www.cnblogs.com/KdeS/p/13267293.html
Copyright © 2011-2022 走看看