如何实现服务器转发客户端消息,socket 怎么实现服务器与客户端不停的互发消息呢?...
在 java Socket應用的 3-4節 我把老師的代碼修改了一下可以手動輸入文字讓對面的服務器/客戶端接受,
下面是代碼:
//客戶端
package 通訊;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;
public class client {
public static void main(String[] args) {
try {
Socket socket = new Socket("127.0.0.1", 8885);
while (true) { ?//死循環重復步驟
OutputStream os = socket.getOutputStream();
PrintStream bw = new PrintStream(os);
Scanner input = new Scanner(System.in);
System.out.println("你想對對面的服務器說些什么");
bw.print(input.next());//從鍵盤輸入讀取一行 打印到輸出流
bw.flush();
socket.shutdownOutput();
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String s;
while ((s = br.readLine()) != null) {
System.out.println("服務器端說:" + s);
}
socket.shutdownInput();
br.close();
isr.close();
is.close();
bw.close();
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//服務器端
package 通訊;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class server {
public static void main(String[] args) {
try {
ServerSocket serversocket = new ServerSocket(8885);
System.out.println("正在等待連接。。。。。。。");
Socket socket = serversocket.accept();
while(true){//死循環重復
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String s;
while ((s = br.readLine()) != null) {
System.out.println("客戶端說" + s);
}
socket.shutdownInput();
OutputStream os = socket.getOutputStream();
PrintStream bw = new PrintStream(os);
Scanner input = new Scanner(System.in);
System.out.println("你想對面的客戶機說些什么");
bw.print(input.next());//從鍵盤輸入讀取一行打印到輸出流
bw.flush();
socket.shutdownOutput();
bw.close();
os.close();
br.close();
isr.close();
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
沒加while死循環之前是,服務器等待請求,客戶端發送一行文字,服務器接受后再發一行文字回去,程序結束。之后我又加了兩個while死循環希望它能一直重復互發消息的步驟,但是出現了如下的異常,代碼應該怎么修改才能實現我想要的不停的互發消息呢?
總結
以上是生活随笔為你收集整理的如何实现服务器转发客户端消息,socket 怎么实现服务器与客户端不停的互发消息呢?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 免费直播编码软件应用技巧
- 下一篇: python时间处理模块有哪些_Pyth