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 }
  • 相关阅读:
    个人阅读作业1
    个人项目-词频统计
    Android中BroadcastReceiver的两种注册方式(静态和动态)详解
    JAVA装饰者模式(从现实生活角度理解代码原理)
    博客维护停止,需要的伙伴们移步http://blog.csdn.net/panhouye
    Android中EditText设置输入条件
    Andriod中自定义Dialog样式的Activity点击空白处隐藏软件盘(Dialog不消失)
    Android中调用文件管理器并返回选中文件的路径
    java中打印实心菱形以及空心菱形的方法
    Android中使用findViewByMe提升组件查找效率
  • 原文地址:https://www.cnblogs.com/luoxionghenku/p/8686779.html
Copyright © 2011-2022 走看看