客户端输入一行字符串,服务器端进行倒序后返回给客户端。简单完成一个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这个服务器端的代码进行交互通讯了
分享到:
相关推荐
在IT领域,网络通信是应用程序之间交互的基础,TCP/IP(Transmission Control Protocol/Internet Protocol)协议栈则是互联网上最广泛使用的通信协议。C#语言提供了一种强大的方式来实现基于TCP/IP的网络通信,通过...
2. **TCP服务器**:使用ServerSocket类创建一个监听特定端口的服务器,通过accept()方法等待客户端的连接请求。当客户端连接后,服务器同样通过Socket对象的输入输出流进行数据交互。 UDP,全称为User Datagram ...
《TCP客户端-服务器程序示例:FTP服务器与客户机》 在计算机网络中,客户端-服务器模型是一种常见的通信架构,而TCP(传输控制协议)则是实现这种通信的基础。本讲将详细阐述如何构建一个基于TCP的客户端-服务器...
Labview TCP服务器对多客户端程序是一个使用LabVIEW(Laboratory Virtual Instrument Engineering Workbench)开发的交互式应用程序,它展示了如何构建一个TCP服务器来处理多个同时连接的客户端。LabVIEW是美国国家...
【异步TCP网络聊天程序(客户端)】是一个基于TCP协议的聊天程序,它允许用户进行实时的文本交流。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它确保了数据包在...
本项目"客户端-服务器模拟聊天程序"旨在通过Java语言实现一个简单的聊天系统,让用户能够在客户端之间进行实时交流。 首先,我们要理解客户端-服务器架构的基本概念。在这个模型中,"客户端"是用户交互的界面,负责...
FTP客户端与服务器通过TCP连接进行交互,客户端发送命令,服务器回应并执行命令。FTP协议有两大模式:主动模式(PORT)和被动模式(PASV),主动模式下,客户端指定数据传输的端口,而被动模式下,服务器选择一个...
1. **设置服务器端口**:在S7-300的硬件配置中,启用PN接口,并在软件如Step 7中配置TCP服务器端口。 2. **编程接收和响应**:使用类似S7-1200的通信指令,但在这里S7-300会监听指定端口等待连接。一旦连接建立,...
总之,异步TCP聊天程序是一种能有效处理多客户端并发通信的网络应用模型,通过服务端的异步处理和客户端的非阻塞交互,提高了系统的效率和用户体验。在设计和实现这样的系统时,需要考虑网络编程的复杂性,包括连接...
在Python编程中,TCP/IP(Transmission Control Protocol/Internet Protocol)是一种网络...实践是提高理解的关键,你可以根据这些理论知识编写并运行服务器和客户端程序,观察其运行过程,加深对TCP/IP通信的理解。
此外,为了调试和测试,你可以设置一个简单的服务器端程序,例如在PC上运行的TCP服务器,用于验证STM32F407客户端的通信功能。 压缩包中的"高级例程-以太网-TCP客户端模式测试"可能包含了实现上述功能的示例代码。...
在Linux环境中进行网络编程,主要涉及客户端和服务器端的交互,以及使用特定的网络协议如TCP和UDP进行数据传输。以下是对这些知识点的详细解释: 1. **客户端与服务器程序**: 网络程序由两部分构成:客户端和...
在IT领域,网络通信是不可或缺的一部分,而TCP...通过`File_client.java`和`File_server.java`这两个文件,我们可以学习到如何在Java中实现TCP服务器和客户端的交互,这对于理解网络编程和开发相关应用至关重要。
--Server.rar_VI服务器_tcp_vi_客户端服务器"的压缩包文件,该文件包含了一个名为"Simple TCP - Server.vi"的VI(Virtual Instrument)程序,用于演示如何在LabVIEW环境下构建一个简单的TCP服务器,实现与客户端的...
总结来说,Qt提供了一套强大的工具来实现TCP通信,开发者可以利用QTcpSocket类轻松创建TCP客户端,与服务器进行可靠的数据交互。这个过程涉及到网络编程的基本概念,如连接建立、数据读写和错误处理,是理解网络通信...
1. **服务器**:使用C#编写TCP服务器,监听特定端口,接收客户端连接请求。当有新的客户端连接时,服务器会创建一个新的线程来处理该连接。 2. **客户端**:Unity客户端也使用C#编写,连接到服务器并保持TCP连接。...
本项目“C#编写的TCP/IP通信程序”就是基于C#的Socket编程实现的服务器和客户端示例,旨在帮助初学者理解和掌握TCP/IP通信的基本原理和编程技巧。 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输...
通过QTcpServer和QTcpSocket,我们可以轻松地实现多客户端的TCP服务器,处理来自各个客户端的数据交互,满足各种网络应用的需求。在开发过程中,需要注意网络通信的异步性、错误处理以及可能的线程安全问题,以保证...
一个网络程序通常由这两部分组成:客户端发起连接请求,而服务器端则在特定的端口上监听,等待客户端的连接。客户端和服务端的通信基于TCP/IP协议簇,常见的两种协议是TCP(传输控制协议)和UDP(用户数据报协议)。...
本主题聚焦于"C#服务器与客户端交互",这是一个关键的概念,涉及到网络通信的基础,尤其是在构建分布式系统时。在描述中提到的是一个实例,这通常意味着我们将探讨一个具体的代码示例或应用案例。 服务器和客户端...