【发布时间】:2016-07-10 13:45:41
【问题描述】:
我试图使用套接字连接服务器,但是当我将参数设置为 localhost 时,它可以工作。但是当我把我的ip地址放在那里时,它永远不起作用,所以我不知道出了什么问题,我得到的ip地址来自http://whatismyipaddress.com
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main( String [] arg ) throws Exception
{
Socket socket;
BufferedReader stdIn;
BufferedReader fromServer;
PrintWriter toServer;
String s;
String result;
socket = new Socket( "96.63.208.240", 5000 );
stdIn = new BufferedReader( new InputStreamReader( System.in ) );
fromServer = new BufferedReader( new InputStreamReader( socket.getInputStream() ) );
toServer = new PrintWriter( new OutputStreamWriter( socket.getOutputStream() ), true );
while ( (s = stdIn.readLine()) != null )
{
toServer.println( s );
result = fromServer.readLine();
System.out.println( "reverse: " + result );
}
socket.close();
}
}
服务器端
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main( String [] arg ) throws Exception
{
ServerSocket serverSocket = new ServerSocket( 5000, 10 );
Socket socket;
serverSocket.setReuseAddress( true );
while ( (socket = serverSocket.accept()) != null )
{
System.out.println( "Accepted an incoming connection" );
new SessionThread( socket ).start();
}
serverSocket.close();
}
}
【问题讨论】:
-
假设这是在家庭类型的网络上 - 您是否在路由器上为端口 5000 启用了端口转发?
-
对不起,你知道怎么做吗?
-
如果您登录到路由器,应该有一个端口转发部分,并将流量从端口 5000 路由到您的本地 IP。
标签: java sockets ip-address port-number