客户端输入一行字符串,服务器端进行倒序后返回给客户端。简单完成一个tcp交互过程。
服务器端代码ReverseServer.java
import java.net.*;
import java.io.*;
public class ReverseServer {
/**
* @param args
*响应多个客户端,把客户端的输入字符串翻转过来显示到客户端
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ServerSocket ss;
try {
//如果传递了端口号,就用传递的;没有再用默认的8001
if(args.length<1)
{
ss = new ServerSocket(8001);
}
//在控制台访问这个主函数,直接用命令:java ReverseServer 8002
else
{
ss = new ServerSocket(Integer.parseInt(args[0]));
}
boolean bRunning=true;
while(bRunning)
{
Socket s=ss.accept();
new Thread(new Servicer(s)).start();
}
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
服务器端代码Servicer.java
import java.io.*;
import java.net.*;
public class Servicer implements Runnable {
private Socket s=null;
public Servicer(Socket s)
{
this.s=s;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
InputStream ips=s.getInputStream();//接收客户端的信息作为输入流
OutputStream ops=s.getOutputStream();//向客户端发送信息作为输出流
BufferedReader br=new BufferedReader(
new InputStreamReader(ips));
PrintWriter pw=new PrintWriter(ops,true);
while(true)
{
String strLine=br.readLine();//接收客户端输入的一行数据,回车后结束
if(strLine.equalsIgnoreCase("quit"))
{
break;
}
System.out.println("ReverseServer socket receive :"+strLine);
String strEcho=(new StringBuffer(strLine).reverse()).toString();//把客户输入的字符串倒序
pw.println(strLine+"----->"+strEcho);//把倒序结果通过输出流返回给客户端
//System.out.println("ReverseServer output :"+strLine+"----->"+strEcho);
}
br.close();
pw.close();
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
客户端代码TcpClientc.java
import java.net.*;
import java.io.*;
public class TcpClientc {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//无参数时执行该提示语句
if(args.length<2)
{
System.out.println("Usage:java TcpClient ServerIP ServerPort ");
return;
}
// Socket s=new Socket(InetAddress.getByAddress(args[0]),
// Integer.parseInt(args[1]));
//有参数,使用Ip,Port进行客户端和服务器端的连接
try {
Socket s=new Socket(args[0],
Integer.parseInt(args[1]));
InputStream ips=s.getInputStream();
OutputStream ops=s.getOutputStream();
BufferedReader brNet=new BufferedReader(
new InputStreamReader(ips));
PrintWriter pw=new PrintWriter(ops,true);
BufferedReader brKeyBoard=new BufferedReader(
new InputStreamReader(System.in));
System.out.println("TcpClientc input :"+brKeyBoard.readLine());
while(true)
{
String strWord=brKeyBoard.readLine();//读取键盘一行数据
//通过输出流把数据发送到服务器端
pw.println(strWord);
if(strWord.equalsIgnoreCase("quit"))
{
break;
}
//通过输入流读取服务器回送的数据
System.out.println("TcpClientc output from Server :"+brNet.readLine());
}
pw.close();
brNet.close();
brKeyBoard.close();
s.close();
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在一个控制台启动Reverse
java ReverseServer 8001
然后再在另一个控制台启动TcpClientc
调用主函数的参数 java TcpClientc localhostip (loaclhostprot)8001
//那么该客户端就会和ReverseServer这个服务器端的代码进行交互通讯了
分享到:
相关推荐
python TCP/IP服务器和客户端交互
基于TCP协议多线程服务器-客户端聊天室,unity实现页面交互,实现群聊,私聊功能
工具包括服务器端和客户端; 具备用户注册、登录、找回密码功能(基于TCP协议); 两个用户如果同时在线,采用点到点通信方式进行聊天,信息不需要通过服务器中转,服务器也不保存(基于TCP协议); 支持离线消息...
一个网络编程实验,TCP服务端与客户端的交互,服务端回射客户端所发的内容,含实验报告
Socket利用单例来实现服务器与客户端交互
最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json。要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台、传输数据格式...
C#Socket服务器与客户端交互
使用Qt中的tcp协议,构建服务器和客户端的界面,实现交互通信,如聊天功能,此为一个简单的例子,但实现了所有的基本功能,富有参考性
一个基于Tcp的C#服务器,用于unity网络交互 -NetworkServers-------Gate服务器,负责消息转发 -GameServers----------Game服务器,负责处理消息 -Network---------------Unity客户端 可多开GameServer连入Gate...
1. TCP客户端程序,可连接服务器,与服务器交互,包括发送文件 2. 界面美化,包含读样式表文件设置样式
本实例封装了一个处理安卓客户端与服务器端交互的几个方法,对于中文乱码问题本实例也找到了解决方案.本例可以处理的场景如下: 1.与服务器端交互json数据. 2.Get方式与服务器端交互数据. 3.Post方式与服务器端交互...
此程序为C++的程序,使用MFC做的界面,此程序实现了服务器与客户端的通信,使用socket通信。一个服务器端可以同时对应多个客户端,此程序代码注释清楚,十分适合应用与学习。服务器端和客户端之间可以发送指定的自己...
1. TCP服务器端程序,与客户端交互,将接收的数据存储到文件中 2. 设置界面样式,包含读样式表文件设置样式 3. 编码格式转换,显示中文不乱码
用QT写了的一个简单的服务器端和客户端。有基本的图形界面,可以实现相互数据通信
QTNetworkDemo:QtNetworkDemo显示了基于C ++ Qt的使用多线程和tcp套接字的客户端服务器交互
2) 基于Java Socket TCP和UDP实现一个简易的网络文件服务程序,包含服务器端FileServer和客户端FileClient; 3) 服务器端启动时需传递root目录参数,并校验该目录是否有效; 4) 服务器启动后,开启TCP:2021端口,...
基于linux的C系统编程实现TCP协议下客户端与服务端的交互
网络五子棋本文主要对五子棋网络游戏技术进行研究,以VB为平台设计并实现了...,通过它建立起服务器与客户端之间的连接,服务器端负责接受客户端的连接和处理客户端的数据,客户端负责连接到服务器并处理游戏时的交互。
1 服务器推送websocket:服务端主动向客户端发消息。 目标:客户端和服务器建立长连接,服务端与客户端可实时收发数据。 原理:使用HTTP协议建立全双工的TCP长连接。 方法:HTML5的WebSocket。 参考:...
通过组态 TCP 连接及使用开放式通信专用功能块与其它设备建立 TCP 连接以实现通信。 本文以 S7-300CPU 作为 TCP 的 Clint 客户端, PC 机上运行的 TCP&UDPDebug; 软件模拟第三方设备作为服务器;进行通信的配置 过程...