TCP客户端程序的编写
来源:互联网 发布:银行家算法经典例题 编辑:程序博客网 时间:2024/05/16 05:43
实现代码:
ReverseServer.java文件代码:
import java.net.*;public class ReverseServer { public static void main(String[] args) { // TODO Auto-generated method stub ServerSocket ss = null; try { if (args.length < 1) { //if和else用于解决端口冲突,如果运行时没有输入参数则为8001 ss = new ServerSocket(8001); //若果运行时指定了参数,则参数为端口号(如: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 (Exception e) { // TODO: handle exception e.printStackTrace(); } }}
Servicer.java文件代码:
import java.net.*;import java.io.*;public class Servicer implements Runnable { private Socket s = null; public Servicer(Socket s) { this.s = s; } public void run() { 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(strLine + ":" + strLine.length()); String strEcho = (new StringBuffer(strLine).reverse()).toString(); pw.println(strLine + "-->" + strEcho); } br.close(); pw.close(); s.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }}
TcpClient.java文件代码:
import java.net.*;import java.io.*;public class TcpClient { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub if (args.length < 2) { System.out.println("Usage:javaTcpClient ServerIP ServerPort"); return; } 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)); while(true) { String strWord = brKeyBoard.readLine(); pw.println(strWord); if (strWord.equalsIgnoreCase("quit")) { break; } System.out.println(brNet.readLine()); } pw.close(); brNet.close(); brKeyBoard.close(); s.close(); }}
运行结果:
先在Eclipse配置开始要输入给args数组的参数:
先运行ReverseServer之后再运行TcpClient:
TcpClient运行之后键盘输入结果和返回结果:
ReverseServer在TcpClient发送数据后收到的结果:
2 0
- TCP客户端程序的编写
- php编写TCP服务端和客户端程序
- php编写TCP服务端和客户端程序
- TCP编写简单的配置文件(客户端)
- 基于TCP的客户端程序示例
- 一个简单的TCP客户端程序流程
- 基于TCP协议的服务器/客户端程序
- 基于TCP协议的服务器/客户端程序
- java编写TCP方式的通信程序
- java编写TCP方式的通信程序
- java编写TCP方式的通信程序
- 编写用TCP/IP的通讯程序
- Java编写一个简单的TCP通信程序。服务器发送一条字符串,客户端接收该信息并显示。
- RFC SDK 指南 客户端程序的编写
- 初识Modbus TCP/IP-------------C#编写Modbus TCP客户端程序(一)
- 初识Modbus TCP/IP-------------C#编写Modbus TCP客户端程序(二)
- tcp网络客户端程序
- TCP服务器/客户端程序
- Unable to load class 'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'
- 排序高级
- Android源码中增加模块
- AOP之基于@Aspect 注解与Schema(xml)区别
- ASCII、Unicode、GBK和UTF-8字符编码的区别联系
- TCP客户端程序的编写
- m个苹果分在n个相同的盒子
- 15电气李书鹏VB作业3(1)
- 学JavaWeb必看文章!为什么我们会使用struts2,springMVC和spring这样的框架?
- 用vb制作计时小工具
- ECSHOP 数据库结构说明 (适用版本v2.7.3)
- 背景图及链接应用样式
- VMWare虚拟机克隆
- 生成bundle,并部署到karaf下运行