代码和思路都比较简单,有什么好的想法可以多指教。
Tcp 编程之客户端 需求: 客户端从键盘输入读取一个字符串,发送到服务器。 客户端接收服务器返回数据并打印。 思路整理: 第一步:创建一个Socket对象确定服务器地址以及端口号
第二步:创建一个输入流准备接收键盘输入,从键盘获取输入流到缓冲区; 第三步:创建一个输出流,用于发送数据到服务器端 第四步:创建一个输入流,用于服务器返回数据接收。 第五步:业务处理,完成所有操作后要关闭流。 完整客户端代码如下 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; /* * Tcp 端客户端(需要先运行服器端) * 客户端从键盘输入读取一个字符串,发送到服务器。 * 客户端接收服务器返回数据并打印。 */
public class Test10_Tcp_Client {
public static void main(String[] args) throws Exception {
Socket s = new Socket( "192.168.1.103" , 8888); // 创建 Socket 对象;
BufferedReader buf = new BufferedReader(
new InputStreamReader(System. in )); // 从键盘获取输入流到缓冲区;
BufferedWriter bufout= new BufferedWriter( new OutputStreamWriter(s.getOutputStream())
); // 创建一个输出流
BufferedReader bufIn = new BufferedReader( new InputStreamReader(
s.getInputStream())); // 获取输入流 …… ;
String line = null ;
while ((line = buf.readLine()) != null ) {
if ( "over" .equals(line))
break ;//当键盘输入over时关闭客户端退出程序
bufout.write(line);
bufout.newLine();//写入一个行分隔符。
bufout.flush();
String str=bufIn.readLine();
System. out .println( "服务器返回字符" +str);
}
s.close();
}
|