博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP通信服务端及客户端代码
阅读量:7070 次
发布时间:2019-06-28

本文共 3286 字,大约阅读时间需要 10 分钟。

Java TCP通信使用的是Socket(客服端)和ServerSocket(服务端),具体代码如下。

server端代码:

import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;public class TcpService {    public static void main(String[] args) throws Exception {      //建立服务器端ServerSocket对象只需绑定一个端口          ServerSocket listen = new ServerSocket(9999);            Socket client  = null;            Boolean flag = true;            while(flag){                System.out.println("Server-->: ");                client = listen.accept();//通过accept()方法得到连接到次服务器端口对应的客服端Socket                 new Thread(new ThreadServer(client)).start();            }                       listen.close();        }    }class ThreadServer implements Runnable{      private Socket client;                public ThreadServer(Socket client){              this.client = client;          }                    @Override          public void run() {              BufferedReader buf = null;              PrintStream out = null;              try{                  out = new PrintStream(this.client.getOutputStream());                  buf = new BufferedReader(new InputStreamReader(this.client.getInputStream()));                                    boolean flag = true;                  while(flag){                      String str = buf.readLine();                                            if(null == str){                          flag = false;                      }else{                          if("bye".equals(str)){                              flag = false;                          }else{                              str = "Respone to client by server:" + str + "\n";out.write(str.getBytes());                          }                      }                  }                  this.client.close();              }catch(Exception e){                  e.printStackTrace();              }          } }

Client端代码:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Socket;public class TcpClient {    public static void main(String[] args)throws IOException{
     //建立客服端Socket,需写入服务器端主机地址以及服务端口 Socket client = new Socket("localhost",9999); BufferedReader buf = null; PrintStream out = null; BufferedReader input = null; //键盘录入 input = new BufferedReader(new InputStreamReader(System.in));      //从服务器端得到的输入流 buf = new BufferedReader(new InputStreamReader(client.getInputStream()));      //输出 out = new PrintStream(client.getOutputStream()); //建立标志,用于判断结束会话 boolean flag = true; while(flag){ System.out.print("Input:"); String str = input.readLine(); out.println(str); if("bye".equals(str)){ flag = false; }else{ String echo = buf.readLine(); System.out.println(echo); } } buf.close(); client.close(); } }

测试:

  需先将服务器端运行开启,之后才能运行客户端,结果如下: 

   服务器端:         Server-->:      Server-->:        客户端:     Input:hello world!     Respone to client by server:hello world!     Input:

转载于:https://www.cnblogs.com/hfblogs/p/5237550.html

你可能感兴趣的文章
linux环境搭建seafile客户端自动上传文件
查看>>
10.27 函数
查看>>
MySQL查询缓存
查看>>
【问题总结】问题行
查看>>
这种放法会使div像一张纸一样
查看>>
阿里云环境配置
查看>>
Codeforces 455C
查看>>
PHP请求页面
查看>>
【动态规划】旅行
查看>>
Git小白入门
查看>>
基于 HTML5 的 WebGL 和 VR 技术的 3D 机房数据中心可视化
查看>>
PHP,JAVA,NET 开发比较
查看>>
平方开根 - 牛顿迭代(板子整理)
查看>>
java string字符拼接符"+"的研究
查看>>
Layui表格编辑【不依赖Layui的动态table加载】
查看>>
HDU2087剪花布条(KMP)
查看>>
NOIP2018普及初赛解析
查看>>
每次访问都生成不一样sessionId
查看>>
解决Cocos2d-x编译错误: 无法打开 源 文件 "extensions/ExtensionExport.h"
查看>>
SqlServer 循环建表、删除表、更新表
查看>>