服务器关于socket的代码,注意serverSocket.accept()一定要放在while循环里不断的监听客户端的请求。
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Test implements Runnable{
ServerSocket serverSocket;
Socket socket;
public static void main(String[] args) {
Thread desktopServerThread = new Thread(new Test());
desktopServerThread.start();
}
@Override
public void run() {
try {
serverSocket=new ServerSocket(1002); //在5648端口进行侦听
System.out.println("waiting for connect");
while(true){
socket=serverSocket.accept();
try {
BufferedReader in1= new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out1=new PrintWriter(socket.getOutputStream(),true);
out1.println("Please waitint");
Socket socket2=serverSocket.accept();
out1.println("手机你好,音响连接上服务器了");
BufferedReader in2= new BufferedReader(new InputStreamReader(socket2.getInputStream()));
PrintWriter out2=new PrintWriter(socket2.getOutputStream(),true);
out2.println("音响你好,手机已经连接了");
String str="收到服务器写的了吗?"; while(true){
str=in1.readLine();
System.out.println("in1.readLine()="+str);
out2.println(str);
str=in2.readLine();
out1.println(str);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
socket.close();
<span style="white-space:pre"> </span>}
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("S: Error");
return;
}
}
}