查看: 92|回复: 1

[IT] unity c# socket 手机客户端连不上电脑服务器

[复制链接]

968

主题

968

帖子

2914

积分

金牌会员

Rank: 6Rank: 6

积分
2914
发表于 2019-7-22 14:43:07 | 显示全部楼层 |阅读模式
//手机能连上手机,电脑能连上手机,但手机连不上电脑
//注:函数已触发,端口号正常,IP地址存在
//代码:  
using ......
namespace TCPServer
{
    public class Server
    {
        IPEndPoint ipe = new IPEndPoint(IPAddress.Any, 1031);
        Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket类
        Socket temp;
        public void StartServer(int Port)
        {
            if (Port != 0)
            {
                ipe = new IPEndPoint(IPAddress.Any, Port);
            }
            s.Bind(ipe);//绑定
            s.Listen(1);//开始监听
            System.Net.IPHostEntry ips = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
            string ip0 = "";
            foreach (System.Net.IPAddress ip in ips.AddressList)
            {
                ip0 = ip.ToString();
            }
            ShowMessage.Show.Message("初始化成功......本机ip:" + ip0);
            Thread Thread = new Thread(new ThreadStart(Accept));
            Thread.Start();
        }
        void Accept()
        {
            temp = s.Accept();//等待客户端连接
            ShowMessage.Show.Message("有新的客户端连接.");
            Thread Thread = new Thread(new ThreadStart(GetMessage));
            Thread.Start();
        }
        public void GetMessage()
        {
             ......
        }
        public void SendMessage(string Message)
        {
            byte[] bs = Encoding.UTF8.GetBytes(Message);
            temp.Send(bs);
        }
        public void CloseServer()
        {
             ......
        }
    }
    public class Client
    {
        static IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("192.168.0.101"), 1031);//服务器地址
        static Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket
        static string IP = "None";
        static int Num = 0;
        Thread Thread = new Thread(new ThreadStart(StartClient));
        public void ConnectTo(string IP0, int Num0)
        {
            IP = IP0;
            Num = Num0;
            Thread.Start();
        }
        static void StartClient()
        {
            Thread.Sleep(100);
            if (IP != "None" && Num != 0)
            {
                ipe = new IPEndPoint(IPAddress.Parse(IP), Num);//服务器地址
            }
            ShowMessage.Show.Message("尝试连接服务器......地址:" + ipe.Address.ToString() + ":" + ipe.Port);
            c.Connect(ipe);//连接到服务器
            ShowMessage.Show.Message("连接服务器成功......");
            Thread.Sleep(200);
            SendMessage("New Client.");
            GetMessage();
        }
        public static void GetMessage()
        {
             .......
        }
        public static void SendMessage(string Message)
        {
            ......
        }
        public void Close()
        {
            c.Close();
        }
    }
}
回复

使用道具 举报

0

主题

279

帖子

173

积分

注册会员

Rank: 2

积分
173
发表于 2019-7-22 14:43:54 | 显示全部楼层
你电脑上的防火墙关了没,包括系统自带的那个。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 在线注册

本版积分规则

QQ|手机版|Archiver|我要投稿|洛阳IT论坛 ( 豫ICP备18021590号 )|网站地图

GMT+8, 2019-8-21 02:06 , Processed in 0.056063 second(s), 23 queries .

Powered by 洛阳IT论坛网 X3.2

© 2018-2020 China Inc.

快速回复 返回顶部 返回列表