[英]Socket Programming in Java Handling with ReadLine Exception
我是套接字編程的新手,正在嘗試找出異常處理問題。 我無法從java中的客戶端向服務器發送字符串消息,因為在運行程序時,代碼的readLine部分給出了異常錯誤。 我嘗試在服務器類中拋出Exception,並且在運行服務器程序時沒有出現紅色帶下划線的代碼錯誤,但是當我在服務器程序之后運行客戶端程序時,在代碼的br.readLine部分中出現了異常錯誤。 可能是什么原因?
我的客戶代碼:
package com.soc;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class socClient {
public static void main(String[] args) throws Exception{
String ip = "localhost";
int port = 9999;// 0-1023 to 65535
Socket s = new Socket(ip,port);
String str = "Hello World";
OutputStreamWriter os = newOutputStreamWriter(s.getOutputStream());
PrintWriter out = new PrintWriter(os);
os.write(str);
os.flush();
}
}
我的服務器代碼:
package com.soc;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class socServer {
public static void main(String[] args) throws Exception{
System.out.println("Server is started");
ServerSocket ss = new ServerSocket(9999);
System.out.println("Server is waiting for client request");
Socket s = ss.accept();
System.out.println("Client connected");
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = null;
str = br.readLine();
System.out.println("Client Data: " +str);
}
}
原因是客戶端永遠不會關閉套接字,這會導致在某些操作系統上重置連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.