我们已经写过一个非常牛逼的爬虫了,我们还差Sockect,ServerSocket,今天就来一个非常吊的通信程序,做完这个程序之后,我们就能大声的对世界宣布:老子很牛!!!
废话少说,这个程序大家一定会喜欢的,因为很好玩!先来一段服务器代码。大家复制粘贴到一个txt文件中,然后保存为:TestServer.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class TestServer {
public static void main(String[] args) {
try{
ServerSocket server=new ServerSocket(5678);
Socket socket=server.accept();
InetAddress ipClient=socket.getInetAddress();
String ipCliset=ipClient.getHostAddress();
System.out.println(ipCliset+" 连上了我");
InputStream in=socket.getInputStream();
InputStreamReader iReader=new InputStreamReader(in);
BufferedReader readerIn=new BufferedReader(iReader);
BufferedReader readerOut=new BufferedReader(new InputStreamReader(System.in)) ;
String s;
PrintWriter pWriter=new PrintWriter(socket.getOutputStream());
while (!(s=readerIn.readLine()).equals("不玩了")){
System.out.println("客户端说:"+s);
pWriter.println(readerOut.readLine()); //给客户端发送消息
pWriter.flush(); //刷新一下
}
System.out.println(ipCliset+" 断开连接了");
in.close();//把资源都关闭了
pWriter.close();
socket.close();
server.close();
}catch (Exception e) {
System.out.println("error "+e);
}
}
}
再来一个客户端,大家也把他复制粘贴了,然后保存为TestClient.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import com.sun.imageio.plugins.common.InputStreamAdapter;
public class TestClient {
public static void main(String[] args) {
try {
Socket socket=new Socket("127.0.0.1",5678);
PrintWriter out=new PrintWriter(socket.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//获取流读入器并且转换成缓存读入器
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
String s;
do {
s=sin.readLine();//一行一行得读
out.println(s);
out.flush();
if(!s.equals("不玩了")){
System.out.println("服务器对我说:"+br.readLine());
}else{
System.out.println(" 睡觉去了···");
}
} while (!s.equals("不玩了"));
sin.close();
br.close();
out.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
好了,跑这个程序比较特别,大家需要打开2个dos的窗口,先启动咱们的服务器,再启动客户端,然后就可以为所欲为啦。