【黑马程序员】Socket编程实现内网连接的问题

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------


利用Socket编程实现内网的客户端和服务端的连接时出现了一个问题。主界面如图所示:

点击启动服务按钮,执行的主要代码如下:

private void btnBeginListen_Click(object sender, EventArgs e)
        {
            //创建服务器端负责监听的套接字,参数(使用IP4寻址协议,使用流式连接,使用TCP协议传输数据)
            Socket listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //用文本框中的IP地址创建一个IP地址对象IPAddress
            IPAddress address = IPAddress.Parse(txtIP.Text.Trim());
            //创建一个包含IP地址和端口的网络节点对象
            IPEndPoint endpoint = new IPEndPoint(address, int.Parse(txtPort.Text.Trim()));
            //把网络节点对象绑定到负责监听的Socket上
            listenSocket.Bind(endpoint);
            //设置监听队列的长度,也就是当前可以同时监听的请求次数
            listenSocket.Listen(10);
            //开始监听客户端的连接请求
            Socket connSocket = listenSocket.Accept();
            ShowMsg("客户端连接成功!");
        }

        private void ShowMsg(string message)
        {
            txtShow.Text = message + "\r\n";
        }
程序运行结果却是报错了,如下图:

报错信息说,请求的地址无效。这是什么原因呢?根据字面意思是IP地址出错了,可这个地址就是本机的IP地址啊。查了半天,原来我给的那个IP地址是联网时的IP地址,根本就不是本机的内网IP。按下“Windows+R”键,输入cmd打开命令窗口,在窗口中输入ipconfig命令,查询本机的IP(也就是ipv4)。纠正后,重新启动程序,再在命令窗口中连接这个服务程序。结果如图所示:

上网搜了一下,原来Windows7不会自动安装运行Telnet服务,所以我们需要手动打开Telnet服务。打开控制面板,打开“程序”,并点击“打开或关闭Windows功能”,勾选“Telnet客户端”就可以了,如下图所示:

点击确定按钮,启动Telnet服务。再运行程序,点击启动服务按钮,我们可以发现窗体无法移动,因为当前主线程被占用,正在等待和监听客户端的连接请求。我们在“命令窗口”里面输入以下命令:telnet 10.12.10.99 1000,然后这个程序就可以从客户端正常连接了。如图所示:



---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值