本文实例讲述了Java基于Tcp协议的socket编程方法,分享给大家供大家参考。具体分析如下:
以下是一对一的通信编程实现,后续会继续学习一个服务器监听多个客户端的实现。
这里用到的主要步骤如下:
第一步:以特定端口(如4800)新建socket对象
第二步:以系统输入设备构造BufferedReader对象,该对象用于接收系统键盘输入的字符
第三步:以socket对象 得到输出流来构造PrintWriter
第四步:以socket对象得到输入流来构造相应的BufferedReader对象,该对象用于接收server端发送过来的信息
我理解到的关闭socket:先开的后关闭,socket最后关闭。
以下是客户端的代码实现:
import java.io.*;
import java.net.Socket;
public class SocketClient {
public static void main(String[] args) throws IOException{
try{
Socket socket=new Socket(\"127.0.0.1\",4800);
System.out.println(\"client start ...\");
//向本机的4800端口发出客户请求
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//由系统标准输入设备构造BufferedReader对象
PrintWriter write=new PrintWriter(socket.getOutputStream());
//由Socket对象得到输出流,并构造PrintWriter对象
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//由Socket对象得到输入流,并构造相应的BufferedReader对象
String readline;
readline=br.readLine(); //从系统标准输入读入一字符串
while(!readline.equals(\"end\")){
//若从标准输入读入的字符串为 \"end\"则停止循环
write.println(readline);
//将从系统标准输入读入的字符串输出到Server2
write.flush();
//刷新输出流,使Server马上收到该字符串
System.out.println(\"Client:\"+readline);
//在系统标准输出上打印读入的字符串
System.out.println(\"Server:\"+in.readLine());
//从Server读入一字符串,并打印到标准输出上
readline=br.readLine(); //从系统标准输入读入一字符串
} //继续循环
write.close(); //关闭Socket输出流
in.close(); //关闭Socket输入流
socket.close(); //关闭Socket
}catch(Exception e) {
System.out.println(\"can not listen to:\"+e);//出错,打印出错信息
}
}
}
本文地址:https://www.stayed.cn/item/5461
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我