1
我正在使用套接字編程在java中製作一個客戶端 - 服務器程序。我已經wrriten代碼,但是當我跑我的同lappy上的代碼,然後它的工作,但是當我運行這些代碼,即第一lappy上的服務器,另一個作爲lappy上它client..then給我誤差修改如下 - >客戶端 - 服務器程序
Exception in thread "main" java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:208)
at client.main(client.java:13)
而我的客戶端代碼--->
import java.net.*;
import java.io.*;
class client{
public static void main(String args[])throws Exception{
Socket ss=new Socket("10.100.90.95",8888);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
DataOutputStream dout=new DataOutputStream(ss.getOutputStream());
DataInputStream din=new DataInputStream(ss.getInputStream());
String str="",str2="";
while(!str2.equals("stop")){
str=br.readLine();
dout.writeUTF(str);
dout.flush();
str2=din.readUTF();
System.out.println("Server says: "+str2);
}
}
}
我的服務器代碼如下 - >
import java.net.*;
import java.io.*;
class server{
public static void main(String args[])throws Exception{
ServerSocket ss=new ServerSocket(3333);
Socket s=ss.accept();
DataInputStream din=new DataInputStream(s.getInputStream());
DataOutputStream dout=new DataOutputStream(s.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str="",str2="";
while(!str.equals("stop")){
str=din.readUTF();
System.out.println("client says: "+str);
str2=br.readLine();
dout.writeUTF(str2);
dout.flush();
}
din.close();
s.close();
ss.close();
}}
所以,請你告訴我,什麼是錯。 Thnaku。
由於動態IP分配和網絡路由器防火牆問題,可能很難做你想做的事情 – ControlAltDel
你使用不同的端口用於客戶端和服務器? –
它看起來像不同的端口號。使用,保持它像8888或3333共同 –