java socket在网络中的消息

时间:2017-04-29 14:37:44

标签: java sockets networking

这是在线程无限运行服务器和客户端三次的代码,这个代码在我的移动热点连接两圈时工作正常但是当我尝试连接到我的大学WiFi(更大的网络)时没有这样做 当我连接到大学网络时,我该怎么做才能正确

提前感谢:)

import java.io.*;  
import java.net.*;   
import java.util.*;  
public class MyServer 
{  
public static void main(String[] args)
{  
    new thser();
    for (int i=0;i<3;i++ )
    {
            try
        {      
            Scanner in=new Scanner(System.in);
            String mys=in.nextLine();
            Socket s=new Socket("112.168.43.134",6666);  
            DataOutputStream dout=new DataOutputStream(s.getOutputStream());  
            dout.writeUTF(mys);  
            dout.flush();  
            dout.close();  
            s.close();  

        }
            catch(Exception e)
        {
            System.out.println(e);
        }   

    }

}  
}  

 class thser extends Thread
{

    public thser()
    {
        start();
    }

   public void run()
   {
    while(true)
    {
        try

        {  
            ServerSocket ss=new ServerSocket(6666);  
            Socket s=ss.accept();//establishes connection   
            DataInputStream dis=new DataInputStream(s.getInputStream());  
            String  str=(String)dis.readUTF();  
            System.out.println("message= "+str);  
            ss.close(); 
        }
        catch(Exception e)
        {
        System.out.println(e);
        }
    }
}

}

1 个答案:

答案 0 :(得分:0)

不确定我是否理解了这个问题,但这是我的答案: 较大的网络可能容易受到内部攻击,通常会将其连接路由,以使其网络上的两台设备无法直接相互通话。在我的学校就是这种情况,女巫使我无法在网络上托管本地服务器。这可能是您的问题。拼贴中的路由器可能不允许您的电脑将数据包发送到网络上的任何本地IP。

我认为这很可能是问题所在。您可以通过尝试ping手机或其他内容来测试这一点,当两者都在拼贴网络上时。

该程序在我的计算机上运行良好:)

PS:希望你记得改变第15行的IP,当你从热点wifi改为你的拼贴wifi