c#中tcp异步编程遇到异常问题,新手感觉很不得懂 希望大神能从浅显的角度帮我解答

2024-11-23 06:54:06
推荐回答(3个)
回答(1):

注:host是在之前定义过的一个ip地址
这个一个客户端的部分代码,源代码本来是:
//tcpClient = new TcpClient(AddressFamily.InterNetwork);//获得本机的ip地址。
运行时没有错误,但是我不想这里指定本机ip,我想指定一个固定的服务器ip,所以讲其注释掉改成:
tcpClient = new TcpClient(host,52888);host为我指定的ip
上面是你理解的有问题。
第一:tcpClient = new TcpClient(AddressFamily.InterNetwork);这句话不是获得本机的ip地址,而是要创建一个使用ip版本4的寻址方案的TcpClient对象。这时只是定义这个对象,并没有建立连接
第二:tcpClient = new TcpClient(host,52888);这句代码的意思是建立一个连接到host和其端口52888的连接,在创建时就已经连接上了。这里的host指的是你要连接的服务器IP地址。此时在创建时已经建立连接了,所以在使用BeginConnect异步调用时,抛出一个【在一个已经建立连接的套接字上做一个连接请求。

你理解上面的内容,应该就可以解决你的问题了。

回答(2):

你这样写呢 TcpCilent tcpClient= new TcpClient();
client.Connect("localhost",52888);不行再问。 如果想改成别的IP地址则把localhost改成对应的“127.0.0.1”格式 的IP地址,记得带双引号。

回答(3):

( n u l l )