zoukankan      html  css  js  c++  java
  • Java使用Sockt进行通信(2)

    使用TCP协议编写Sockt

    TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。

    TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

    Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的

    具体代码:

    服务端:
    *端口号可以自定义

     1 package cn.socket2;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.InputStreamReader;
     5 import java.io.OutputStream;
     6 import java.net.ServerSocket;
     7 import java.net.Socket;
     8 
     9 public class SeviceSocpt {
    10     /*
    11      *       服务端发送信息,接收信息
    12      */
    13     public static void main(String[] args) throws Exception {
    14 
    15                 //1.创建对象
    16                 ServerSocket sk=new ServerSocket(11111);
    17                 //2.监听
    18                 Socket s=sk.accept();
    19                 //打包数据
    20                 BufferedReader br=new BufferedReader(new 
    21                                   InputStreamReader(s.getInputStream()));    
    22                 BufferedReader bw=new BufferedReader(new 
    23                                      InputStreamReader(System.in));
    24                 OutputStream os=s.getOutputStream();
    25                 String line=null;
    26                 //使用循环可多次发送信息
    27                 while((line=br.readLine())!=null){
    28                     System.out.println("Client 	"+line);        
    29                     
    30                     os.write(bw.readLine().getBytes());
    31                 }            
    32                 //释放资源
    33                 s.close();
    34 
    35     }
    36 
    37 }

    客户端:

     1 package cn.socket2;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.BufferedWriter;
     5 import java.io.InputStream;
     6 import java.io.InputStreamReader;
     7 import java.io.OutputStreamWriter;
     8 import java.net.Socket;
     9 
    10 public class ClientSocket {
    11 /*
    12  *       客户端发送信息,接收信息
    13  */
    14     public static void main(String[] args) throws Exception {
    15         //创建Socket对象 并写入IP地址及端口号
    16         Socket sk=new Socket("192.168.60.218",11111);
    17         //使用IO流读取数据和写入数据
    18         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    19         BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(sk.getOutputStream()));
    20         String line=null;
    21         //使用循环使用循环可多次发送信息
    22         while((line=br.readLine())!=null){            
    23             bw.write(line);
    24             bw.newLine();
    25             bw.flush();
    26             
    27             InputStream is=sk.getInputStream();            
    28             byte [] by=new byte[1024];
    29             int num=is.read(by);
    30             String h=new String(by, 0, num);
    31             System.out.println("Service:	"+h);
    32         }    
    33         //释放资源
    34                    br.close();
    35                     bw.close();
    36            sk.close();
    37 
    38     }
    39 
    40 }
  • 相关阅读:
    odoo API装饰器one、model、multi的区别
    odoo配置界面设置字段默认值
    redhat_6.5下载地址
    常用在线工具链接
    odoo开发环境搭建(四):python开发工具IDE pycharm配置
    odoo开发环境搭建(三):安装odoo依赖的python包
    odoo开发环境搭建(二):安装Ubuntu 17虚拟机
    odoo开发环境搭建(一):安装VMware Workstation
    火狐浏览器网页截屏插件
    copy代码的时候,如何去掉代码前边的编号
  • 原文地址:https://www.cnblogs.com/luoxionghenku/p/8686779.html
Copyright © 2011-2022 走看看