黑马程序员技术交流社区
标题:
关于基础测试tcp协议那题
[打印本页]
作者:
进击的大鹏
时间:
2014-10-11 11:19
标题:
关于基础测试tcp协议那题
使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。
服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
这题完全看不懂啊,有没有会的最好加个注释。
还有就是基础测试题那些简答题你们都写哪儿了?
作者:
张波
时间:
2014-10-11 12:40
import java.io.*;
import java.net.*;
class Client
{
public static void main(String []args)throws Exception{
//建立连接
Socket s = new Socket("172.40.84.99", 10006);
//定义键盘录入对象
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//定义网络流读对象
BufferedReader brIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
//定义网络流写对象
BufferedWriter bwOut = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String str = null;
while((str = br.readLine()) != null){
bwOut.write(str);
bwOut.newLine(); //加换行(在服务端用于结束标记)
bwOut.flush(); //刷新缓存区数据
//读取从服务器端发送过来的数据
System.out.println(brIn.readLine());
//结束标记, 当输入为over时结束
if(str.equals("over")){
break;
}
}
br.close();
s.close();
}
}
class Server
{
public static void main(String args[])throws Exception{
ServerSocket ss = new ServerSocket(10006);
Socket s = ss.accept();
System.out.println(s.getInetAddress().getHostAddress() + " : 连接已建立");
BufferedReader brIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bwOut = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String str = null;
while((str = brIn.readLine()) != null){
//System.out.println(str);
//将字符串进行反转
StringBuilder sb = new StringBuilder(str);
str = sb.reverse();
bwOut.write(str.toUpperCase());
bwOut.newLine();
bwOut.flush();
}
s.close();
ss.close();
}
}
作者:
奋发吧小白
时间:
2014-10-11 12:42
楼主这个若是是看不懂 建议 还是把视频多看几遍!
作者:
646245771
时间:
2014-10-11 13:56
怎么会看不懂呢?这题不是最基本的么。。。如果这题看不懂,那还是建议你重新再看一遍吧
作者:
mingtianrsm
时间:
2014-10-11 15:28
楼主,这个题就是毕老师网络视频里讲的,照着老师的写就行~
作者:
Doit
时间:
2014-10-11 21:58
package com.itheima;
/**
* 10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。
服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
*/
import java.io.*;
import java.net.*;
public class Test10_Server {
public static void main(String[] args) throws Exception {
//创建服务器socket对象 并且监听10000端口
ServerSocket ss = new ServerSocket(10000);
//获取连接的客户端socket对象
Socket s = ss.accept();
//获取客户端ip地址
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+".....connected");
//定义服务器端socket读取流
BufferedReader bufIn =
new BufferedReader(new InputStreamReader(s.getInputStream()));
//定义socket输出流,将收到的字符串反转之后写入到socket输出流,并发送给客户端
BufferedWriter bufOut =
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String line = null;
while((line = bufIn.readLine()) != null){//读客户端发送过来的字符串
//将读到的字符串反转
line = new StringBuffer(line).reverse().toString();
//将反转后的字符串写给客户端
bufOut.write(line);
bufOut.newLine();
bufOut.flush();
}
s.close();
ss.close();
}
}
package com.itheima;
import java.io.*;
import java.net.*;
public class Test10_Client {
public static void main(String[] args) throws Exception {
//定义客户端socket 连接到本机,即127.0.0.1 端口号10000
Socket s = new Socket("127.0.0.1",10000);
//定义键盘读取流对象
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
//定义目的流,将数据写入socket输出流,发送给服务端。
BufferedWriter bufOut =
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
//定义一个socket读取流,读取服务端返回的反转字符串信息
BufferedReader bufIn =
new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = null;
while((line=bufr.readLine()) != null){//读键盘输入的数据,如果输入over则结束循环
if("over".equals(line))
break;
bufOut.write(line);//把键盘输入的数据写入socket输出流中,写给服务器
bufOut.newLine();
bufOut.flush();
String str = bufIn.readLine();//读取服务器发送回来的反转过的字符串
System.out.println("server: "+str);
}
bufr.close();
s.close();
}
}
作者:
郭.威
时间:
2014-10-11 22:53
。。。。。。。。。。。。。。。
作者:
夕默
时间:
2014-10-11 23:48
我也遇到了这个题。。。建议楼主还是看视频自己解决。。。视频里面的知识点都很全面,有些题目我也是看了视频完成的,满分,飘过。。。
作者:
java-01
时间:
2014-10-11 23:57
视频里的内容而已
作者:
残羹夜宴丶
时间:
2014-10-12 10:38
我记得视频上应该有这一块啊,楼主再复习一下,其实不太难,就几个流,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2