黑马程序员技术交流社区
标题: 关于套接字_客户端连接服务器报错的问题 [打印本页]
作者: 彭清贵 时间: 2013-2-4 02:59
标题: 关于套接字_客户端连接服务器报错的问题
本帖最后由 彭清贵 于 2013-2-4 03:02 编辑
今天在【ASP.NET≠拖控件!】-传智播客ASP.NET高手之路视频教程08_套接字_客户端连接服务器这个视频中,我照着老师的代码写的结果报错了下面发来大家瞧下我写的,新手别看了,
这是VS上的代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Sockets;
using System.Net;//IP,IPAdress,IPEndPoint(ip和端口)类
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
namespace mychatroomserver
{
public partial class fchatserver : Form
{
public fchatserver()
{
InitializeComponent();
}
Thread threadWatch = null;//负责监听 客户端 连接请求的线程
Socket socketWatch = null;//负责监听的 套接字
private void btnlistien_Click(object sender, EventArgs e)
{
//创建服务端 负责监听的套接字,参数(使用IP4寻址协议,使用流式连接,使用TCP协议传输数据)
Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//获得文本框中的IP地址对象
IPAddress address = IPAddress.Parse(txtIP.Text.Trim());
//创建包含IP和PORT的网络节点对象
IPEndPoint endpoint = new IPEndPoint(address, int.Parse(txtPORT.Text.Trim()));
//将负责监听的套接字绑定到唯一的IP和端口上
socketWatch.Bind(endpoint);
//设置监听队列的长度
socketWatch.Listen(10);
//创建 负责监听的线程,并传入监听方法
threadWatch = new Thread(WatchConnecting);
threadWatch.IsBackground = true;//设置为后台进程
ShowMsg("服务器启动监听成功");//开启线程
}
void WatchConnecting()
{
//开始监听 客户端 连接请求 注意:Accept方法会阻断当前的线程!
Socket sokConnection=socketWatch.Accept();
ShowMsg("客户端连接成功!");
}
void ShowMsg(string msg)
{
txtMsg.AppendText(msg + "\r\n");
}
}
}
下面是窗口程序截图
我是照着老师画瓢的
结果一运行出现如此异常
这是为什么,我那都照着看了几篇,现在卡在这儿学不上去了 晕乎了 求解
作者: 王立 时间: 2013-2-5 19:49
本帖最后由 王立 于 2013-2-5 19:50 编辑
应该是ip地址绑定问题,我的用192.168.1.100可以,改成192.168.1.101就提示和你一样的错误了 在其上下文中,该请求的地址无效。你去百度搜索一下
网上的答案
路由配置的问题。
打开192.168.0.1,进入高级选项,选择端口转发,发现ip地址对应的端口5000,ip不是不是本机ip,于是改成本机ip重启!Done!
http://www.baidu.com/s?wd=%D4%DA%C6%E4%C9%CF%CF%C2%CE%C4%D6%D0%A3%AC%B8%C3%C7%EB%C7%F3%B5%C4%B5%D8%D6%B7%CE%DE%D0%A7%A1%A3
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |