客户端和服务器端可以相互交信,在这里我实现了一对一的通讯,有这个基础了,我们就可以实现一对多的通信了。
那我们就来编程实现之.
首先要引用网络包
import java.io.*;
import java.net.*;
//在这里初始化ServerSocket
serverSocket=new ServerSocket(8000);
socket=serverSocket.accept();
这样服务器端处理监听状态,一直监听客户端的连接.
//在这里初始化ServerSocket
socket=new Socket(host,port);//host为服务器的IP地址,port为端口号,注意port号越大越好。0~65535
这样客户端就可以同服务器端相互通信了
这样服务器和客户端就建立了连接。
下面我来建立读写流方便调用
//构造一个返回值为BuffereReader读对象流的函数
private BufferedReader getReader(Socket socket)throws IOException{
InputStream socektIn=socket.getInputStream();
return new BufferedReader(new InputStreamReader(socektIn));
}
//构造一个返回值为PrintWriter写对象流的函数
private PrintWriter getWriter(Socket socket) throws IOException{
OutputStream socketOut=socket.getOutputStream();
return new PrintWriter(socketOut,true);
}
这样就可以通过
try {
pw=getWriter(socket);
} catch (IOException e1) {
// 处理异常
e1.printStackTrace();
}
pw.println(tt);
}
这种方式将信息发送出去
通过
public void run() {
// 在这里运行线程中的方法
while(true){
try {
br=getReader(socket);
String str;
str=br.readLine();
jta.append("客户端说: "+str+"/n");
} catch (IOException e) {
// 处理异常
e.printStackTrace();
}
}
}
因为我们不知道什么时候能够读到信息,所以用一个线程进行捕捉
并显示出来
当然不要在主函数中启动主线程
Server server=new Server();
Thread th=new Thread(server);//初始化线程.
th.start();//启动线程
这样就可以实现收发信息了。而客户端其实和服务器端差不多的方式收发信息,这里就不多说了。