2015-12-03 171 views
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。

+0

由於動態IP分配和網絡路由器防火牆問題,可能很難做你想做的事情 – ControlAltDel

+0

你使用不同的端口用於客戶端和服務器? –

+0

它看起來像不同的端口號。使用,保持它像8888或3333共同 –

回答

1

您正在傾聽3333,但試圖連接到8888.它沒有任何意義。您需要偵聽您嘗試連接的相同端口號。

+0

對不起,我在這裏輸入的錯誤。在實際的程序中,我使用相同的端口號。 – pyadav