`
sherrysky
  • 浏览: 88672 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

简单TCP网络程序-服务器及客户端交互程序

阅读更多
客户端输入一行字符串,服务器端进行倒序后返回给客户端。简单完成一个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这个服务器端的代码进行交互通讯了
0
4
分享到:
评论
1 楼 lliiqiang 2015-09-15  
与客户端交互,必须做到能够让使用者得到相应地服务,真实地获取信息和反馈真实意思。

相关推荐

    C#TCP-IP服务器和客户端源代码.rar

    在IT领域,网络通信是应用程序之间交互的基础,TCP/IP(Transmission Control Protocol/Internet Protocol)协议栈则是互联网上最广泛使用的通信协议。C#语言提供了一种强大的方式来实现基于TCP/IP的网络通信,通过...

    TCP--UDP的服务器和客户端程序

    2. **TCP服务器**:使用ServerSocket类创建一个监听特定端口的服务器,通过accept()方法等待客户端的连接请求。当客户端连接后,服务器同样通过Socket对象的输入输出流进行数据交互。 UDP,全称为User Datagram ...

    第3讲-TCP客户端-服务器程序示例(FTP服务器和客户机)借鉴.pdf

    《TCP客户端-服务器程序示例:FTP服务器与客户机》 在计算机网络中,客户端-服务器模型是一种常见的通信架构,而TCP(传输控制协议)则是实现这种通信的基础。本讲将详细阐述如何构建一个基于TCP的客户端-服务器...

    Labview TCP服务器对多客户端程序

    Labview TCP服务器对多客户端程序是一个使用LabVIEW(Laboratory Virtual Instrument Engineering Workbench)开发的交互式应用程序,它展示了如何构建一个TCP服务器来处理多个同时连接的客户端。LabVIEW是美国国家...

    异步TCP网络聊天程序(客户端)

    【异步TCP网络聊天程序(客户端)】是一个基于TCP协议的聊天程序,它允许用户进行实时的文本交流。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它确保了数据包在...

    客户端-服务器 模拟聊天程序

    本项目"客户端-服务器模拟聊天程序"旨在通过Java语言实现一个简单的聊天系统,让用户能够在客户端之间进行实时交流。 首先,我们要理解客户端-服务器架构的基本概念。在这个模型中,"客户端"是用户交互的界面,负责...

    网络编程---ftp客户端程序实验报告

    FTP客户端与服务器通过TCP连接进行交互,客户端发送命令,服务器回应并执行命令。FTP协议有两大模式:主动模式(PORT)和被动模式(PASV),主动模式下,客户端指定数据传输的端口,而被动模式下,服务器选择一个...

    S7-1200 与 S7-300 PN 口TCP 通信S7-1200 作为客户端,S7-300 作服务器

    1. **设置服务器端口**:在S7-300的硬件配置中,启用PN接口,并在软件如Step 7中配置TCP服务器端口。 2. **编程接收和响应**:使用类似S7-1200的通信指令,但在这里S7-300会监听指定端口等待连接。一旦连接建立,...

    异步TCP聊天程序(服务端和客户端)

    总之,异步TCP聊天程序是一种能有效处理多客户端并发通信的网络应用模型,通过服务端的异步处理和客户端的非阻塞交互,提高了系统的效率和用户体验。在设计和实现这样的系统时,需要考虑网络编程的复杂性,包括连接...

    python TCP/IP服务器和客户端交互

    在Python编程中,TCP/IP(Transmission Control Protocol/Internet Protocol)是一种网络...实践是提高理解的关键,你可以根据这些理论知识编写并运行服务器和客户端程序,观察其运行过程,加深对TCP/IP通信的理解。

    STM32F407开发板-以太网-TCP客户端网络通信

    此外,为了调试和测试,你可以设置一个简单的服务器端程序,例如在PC上运行的TCP服务器,用于验证STM32F407客户端的通信功能。 压缩包中的"高级例程-以太网-TCP客户端模式测试"可能包含了实现上述功能的示例代码。...

    Linux网络编程-简单的客户端和服务器通讯程序开发入门[归类].pdf

    在Linux环境中进行网络编程,主要涉及客户端和服务器端的交互,以及使用特定的网络协议如TCP和UDP进行数据传输。以下是对这些知识点的详细解释: 1. **客户端与服务器程序**: 网络程序由两部分构成:客户端和...

    基于TCP的Socket编程服务器和客户端代码

    在IT领域,网络通信是不可或缺的一部分,而TCP...通过`File_client.java`和`File_server.java`这两个文件,我们可以学习到如何在Java中实现TCP服务器和客户端的交互,这对于理解网络编程和开发相关应用至关重要。

    Simple-TCP---Server.rar_VI服务器_tcp_vi_客户端服务器

    --Server.rar_VI服务器_tcp_vi_客户端服务器"的压缩包文件,该文件包含了一个名为"Simple TCP - Server.vi"的VI(Virtual Instrument)程序,用于演示如何在LabVIEW环境下构建一个简单的TCP服务器,实现与客户端的...

    基于Tcp协议的服务器与客户端通信之客户端

    总结来说,Qt提供了一套强大的工具来实现TCP通信,开发者可以利用QTcpSocket类轻松创建TCP客户端,与服务器进行可靠的数据交互。这个过程涉及到网络编程的基本概念,如连接建立、数据读写和错误处理,是理解网络通信...

    TCP多线程服务器-客户端聊天室(Unity版)

    1. **服务器**:使用C#编写TCP服务器,监听特定端口,接收客户端连接请求。当有新的客户端连接时,服务器会创建一个新的线程来处理该连接。 2. **客户端**:Unity客户端也使用C#编写,连接到服务器并保持TCP连接。...

    C#编写的TCP/IP通信程序,服务器和客户端

    本项目“C#编写的TCP/IP通信程序”就是基于C#的Socket编程实现的服务器和客户端示例,旨在帮助初学者理解和掌握TCP/IP通信的基本原理和编程技巧。 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输...

    QT + Tcp客户端,服务器(支持多客户端)

    通过QTcpServer和QTcpSocket,我们可以轻松地实现多客户端的TCP服务器,处理来自各个客户端的数据交互,满足各种网络应用的需求。在开发过程中,需要注意网络通信的异步性、错误处理以及可能的线程安全问题,以保证...

    Linux网络编程-简单的客户端和服务器通讯程序开发入门.pdf

    一个网络程序通常由这两部分组成:客户端发起连接请求,而服务器端则在特定的端口上监听,等待客户端的连接。客户端和服务端的通信基于TCP/IP协议簇,常见的两种协议是TCP(传输控制协议)和UDP(用户数据报协议)。...

    c# 服务器与客户端交互

    本主题聚焦于"C#服务器与客户端交互",这是一个关键的概念,涉及到网络通信的基础,尤其是在构建分布式系统时。在描述中提到的是一个实例,这通常意味着我们将探讨一个具体的代码示例或应用案例。 服务器和客户端...

Global site tag (gtag.js) - Google Analytics