前言:凡事贵在坚持,找回自己应有的姿态,以无惧的心态去面对生活、学习、挑战!共勉
一、题目
请编写一个程序,实现Socket通信,即服务器端与客户端的通信,并要求消息回显
二、思路
1、编写两个类,分别为Server端和Client端,通过建立Socket通信,实现消息传递!
2、使用BufferReader作为字符流输入,PrintWriter作为字符流输出!
3、注意:需要先启动服务器端再启动客户端,否则会无法建立连接并且报错!
三、实现
1、服务器端
public class SocketServer {
public static void main(String args[])
{
BufferedReader br=null;
PrintWriter pw=null;
try {
ServerSocket serve=new ServerSocket(2000);
Socket socket=serve.accept();//建立通信
br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw=new PrintWriter(socket.getOutputStream(),true);
String s=br.readLine();//获取数据
pw.println("Got your message:"+s);//发送数据
System.out.println("Get Message:"+s);//输出接受得到的信息
}
catch (Exception e)
{
e.printStackTrace();
}
finally {
try {
br.close();
pw.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
2、客户端
public class SocketClient {
public static void main(String args[])
{
BufferedReader br=null;
PrintWriter pw=null;
try {
Socket socket=new Socket("localhost",2000);
br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw=new PrintWriter(socket.getOutputStream(),true);
pw.println("Hello! This is Client!");//发送数据
String s=null;
while (true)
{
s=br.readLine();
if (s!=null)
break;
}
System.out.println("Got Response:"+s);//数据回显,输出服务器端的信息
}
catch (Exception e)
{
e.printStackTrace();
}
finally {
try {
br.close();
pw.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
发文不易,恳请大佬们高抬贵手!
点赞:随手点赞是种美德,是大佬们对于本人创作的认可!
评论:往来无白丁,是你我交流的的开始!
收藏:愿君多采撷,是大佬们对在下的赞赏!