0
我正在學習Java中的套接字編程,並編寫了一個簡單的程序用於將客戶端服務器連接到本地主機上的套接字服務器。但是,每當我運行ClientServer程序時,都會給出連接錯誤:拒絕。未能將客戶端服務器連接到本地網絡
我附上了我編寫的客戶端代碼和服務器代碼,並附上了控制檯輸出。
package Classes;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class ClientSer {
/**
* @param args
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
// TODO Auto-generated method stub
Socket s = new Socket("localhost",1029);
OutputStreamWriter os = new OutputStreamWriter(s.getOutputStream());
String str = "tEST mESSAGE";
os.write(str);
os.flush();
}
}
這是服務器代碼:
package Classes;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketSer {
public static void main(String args[]) throws Exception{
ServerSocket ss = new ServerSocket(1029);
Socket s = ss.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = br.readLine();
System.out.print(str);
}
}
控制檯輸出:
Exception in thread "main" java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at Classes.ClientSer.main(ClientSer.java:18)
檢查防火牆配置以確保它不阻止端口1029 –
客戶端嘗試將綁定到與無法工作的服務器相同的端口。另外,您的客戶端永遠不會嘗試連接到服務器。您的代碼沒有錯誤檢查,所以調試非常困難。 –
端口1029上的'ServerSocket' _listens_。客戶端套接字使用可用的源端口將***綁定到端口1029。這裏沒有衝突。 –