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();
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:

TCP通信服务端及客户端代码的更多相关文章

  1. java TCP 通信:服务端与客服端

    1.首先先来看下基于TCP协议Socket服务端和客户端的通信模型: Socket通信步骤:(简单分为4步) 1.建立服务端ServerSocket和客户端Socket 2.打开连接到Socket的输 ...

  2. socket模块实现基于UDP聊天模拟程序;socketserver模块实现服务端 socket客户端代码示例

    socket模块 serSocket.setblocking(False) 设置为非阻塞: #coding=utf-8 from socket import * import time # 用来存储所 ...

  3. Java网络编程(TCP协议-服务端和客户端交互)

    客户端: package WebProgramingDemo; import java.io.IOException; import java.io.InputStream; import java. ...

  4. 基于java NIO 的服务端与客户端代码

    在对java NIO  selector 与 Buffer Channel  有一定的了解之后,我们进行编写java nio 实现的 客户端与服务端例子: 服务端: public class NIOC ...

  5. C++封装的基于WinSock2的TCP服务端、客户端

    无聊研究Winsock套接字编程,用原生的C语言接口写出来的代码看着难受,于是自己简单用C++封装一下,把思路过程理清,方便自己后续翻看和新手学习. 只写好了TCP通信服务端,有空把客户端流程也封装一 ...

  6. gSOAP calc服务端与客户端示例

    1. Web服务定义描述头文件 typedef double xsd__double; int ns__add(xsd__double a, xsd__double b, xsd__double &a ...

  7. 【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端

    [转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP ...

  8. C#Winform窗体实现服务端和客户端通信例子(TCP/IP)

    Winform窗体实现服务端和客户端通信的例子,是参考这个地址 http://www.cnblogs.com/longwu/archive/2011/08/25/2153636.html 进行了一些异 ...

  9. 【.NET+MQTT】.NET6 环境下实现MQTT通信,以及服务端、客户端的双边消息订阅与发布的代码演示

    前言: MQTT广泛应用于工业物联网.智能家居.各类智能制造或各类自动化场景等.MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,在很多受限的环境下,比如说机器与机器通信.机器与物联网通信等. ...

随机推荐

  1. js 获取iframe页面元素

      js 获取iframe页面元素 CreationTime--2018年8月16日18点00分 Author:Marydon <!-- chart图表 --> <iframe id ...

  2. 【Oracle】Oracle常用语句集合

    表相关 1.快速统计大表记录数 select table_name, t.num_rows, t.last_analyzed  from tabs t WHERE table_name='TABLE_ ...

  3. Android开发之Google Map

    2013-07-03 Google Map 提供三种视图: 1. 传统的矢量地图,提供行政区域.交通以及商业信息等. 2. 不同分辨率的卫星照片,与Google Earth 基本一样. 3. 地形地图 ...

  4. CentOS连接网络注意事项

    连接网络,系统中这两个服务需要启动 可以看到右上角网络连接成功了

  5. QueryRunner 结果处理器

    package cn.itcast.dbutil; import java.sql.SQLException; import java.util.List; import java.util.Map; ...

  6. [Linux]--解决虚拟机中安装ubuntu不能自适应的问题

    这几天换了新的电脑,但是装上ubuntu mate以后就一直不能自适应窗口大小改变分辨率,奈何我是个强迫症,再加上也不想老师带着自己的笔记本跑动跑西的(主要是太重了...),于是今天花了一下午的时间找 ...

  7. FFmpeg进行屏幕录像和录音

    文章转自:http://www.cucer.cn/2016/03/10/ffmpeg-screen-capture.html 有些时候我们需要对屏幕进行录制,比如制作视频教程,录制直播等.然而这方面的 ...

  8. Android Native IPC 方案支持情况

    Binder - 不支持Native层的binder 内存共享 - 不支持 信号量(信号灯) - 不支持 消息队列 - 不支持 信号 - 支持,但是不能用sigqueue传消息,只能用来安装信号,可以 ...

  9. Python线程event

    python线程的事件用于主线程控制其他线程的执行,事件主要提供了三个方法wait.clear.set 事件处理的机制:全局定义了一个“Flag”,如果“Flag”值为 False,那么当程序执行 e ...

  10. CentOS 7.1重启后无法进入Gnome

    问题环境: 新买的Intel NUC主机,通过光驱安装CentOS 7.1版本,安装过程没问题. 安装完毕后,重启. 坏了! 只能看到黑屏和一只可以移动的鼠标. 只能说说我的排查思路: 一.首先要进入 ...