博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java TCP ECHO服务器客户端[CODE]
阅读量:6256 次
发布时间:2019-06-22

本文共 3787 字,大约阅读时间需要 12 分钟。

EchoClient.java

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class EchoClient {
public static void main(String args[]){
String hostname = "localhost"; if(args.length > 0){
hostname = args[0]; } //定义一系列的变量 PrintWriter out = null; //用于向网络写数据 BufferedReader in = null; //用于向网络读数据 Socket socket = null; BufferedReader userIn = null; //用于获取键盘输入 try {
//实例化相应的变量 socket = new Socket(hostname,9998); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true); userIn = new BufferedReader(new InputStreamReader(System.in)); System.out.println("connect to echo Server" + hostname); while(true){
String theLine = userIn.readLine(); if(theLine.equals(".")){
break; } out.println(theLine); System.out.println(in.readLine()); } } catch (UnknownHostException e) {
// TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } try {
in.close(); socket.close(); } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } out.close(); } }

EchoServer.java 

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class EchoServer {
@SuppressWarnings("null") public static void main(String args[]){
//首先定义四个变量 ServerSocket serversocket = null; //用于创建TCP服务器 Socket socket = null; //用于获得连接套接字 BufferedReader in = null; //用于接收数据 PrintWriter out = null; //用于发送数据 //在网络编程中读取和发送相应的网络数据都需要自己的IO变量 try {
serversocket = new ServerSocket(9998); //实例化监听套接字,绑定端口9998 while(true){ //打印帮助消息 //这里将会打印IP地址和端口相关的信息 System.out.println("The Server is start:" +serversocket); //等待客户端连接,连接成功之后,返回一个socket类型的变量,所有的数据传输都是和socket进行. socket = serversocket.accept(); //打印客户端的相关消息 System.out.println("Accept the Client:" + socket); //实例化BufferedReader 对象用于接收客户端发送来的消息 //InputStreamReader的作用是将字节流转换成为字符流 //从网络中得到的数据将会存放在inBuffer变量当中 in = new BufferedReader(new InputStreamReader(socket.getInputStream())); //得到输出流 out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true); //通过上面的工作,我对网络的读写操作都准备好了 while(true){
String instr = in.readLine(); //按行读取数据 if(instr == null){
break; //当客户端关闭时跳出循环 } System.out.println("In server received the info:" + instr);//打印获得的数据 out.println(instr);//将从网络中得到的数据回写 } } } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } try {
socket.close(); serversocket.close(); in.close(); } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } out.close(); System.out.println("Server is exit"); } }

 

转载地址:http://aynsa.baihongyu.com/

你可能感兴趣的文章
ora-01200错误的分析
查看>>
Hyper-V 3 虚拟机快照之二 创建和查看快照
查看>>
2.[Struts2权威指南笔记]Servlet
查看>>
Android+TensorFlow+CNN+MNIST实现手写数字识别
查看>>
SCCM 2012系列11 补丁分发下
查看>>
Windows脚本初探之PowerShell变量和常量
查看>>
用Python简单处理SQL语句绕过防注入
查看>>
披星“戴”云,百治百效
查看>>
内存真实利用率
查看>>
由bean,及O/R映射文件导出数据库的方法ExportDB()
查看>>
2003加入域提示“用户已存在”
查看>>
基于Hadoop数据仓库Hive1.2部署及使用
查看>>
利用shell计算find命令查出后的总文件大小
查看>>
性能之外:LSI 6Gb/s SAS RAID渠道先行
查看>>
DataGridView打印类
查看>>
【java】实体类中 Set<对象> 按照对象的某个字段对set排序
查看>>
Android Butterknife 8.4.0 使用方法总结
查看>>
横向滑动的HorizontalListView滑动指定位置的解决方法
查看>>
2013百度校招笔试真题以及解析(内存管理及其优缺点总结)
查看>>
自制DbHelper实现自动化数据库交互
查看>>