C# socket问题 请高手指点
如下监听代码 运行时出现“通常每个套接字地址(协议/网络地址/端口)只允许使用一次”
try
{
IPAddress ServerIp=System.Net.Dns.Resolve(164.192.0.168).AddressList[0];
IPEndPoint iep=new IPEndPoint(ServerIp,int.Parse(80));
socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
byte[] byteMessage=new byte[100];
this.lTemp.Text=iep.ToString();
socket.Bind(iep);
while(true)
{
try
{
socket.Listen(5);
Socket newSocket=socket.Accept();
newSocket.Receive(byteMessage);
string sTime = DateTime.Now.ToShortTimeString ( ) ;
string msg=sTime+":"+"Message from:";
msg+=newSocket.RemoteEndPoint.ToString()+Encoding.Default.GetString(byteMessage);
this.listBox1.Items.Add(msg);
}
catch(SocketException ex)
{
this.lTemp.Text+=ex.ToString();
}
}
}
catch(System.ArgumentNullException E)
{
MessageBox.Show(E.Message);
}
catch(System.Net.Sockets.SocketException E)
{
MessageBox.Show(E.Message,"完成",MessageBoxButtons.OK,MessageBoxIcon.Stop);
}
catch( System.Exception E)
{
MessageBox.Show(E.Message,"完成",MessageBoxButtons.OK,MessageBoxIcon.Stop);
}
finally
{
socket.Close();
}
try
{
IPAddress ServerIp=System.Net.Dns.Resolve(164.192.0.168).AddressList[0];
IPEndPoint iep=new IPEndPoint(ServerIp,int.Parse(80));
socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
byte[] byteMessage=new byte[100];
this.lTemp.Text=iep.ToString();
socket.Bind(iep);
while(true)
{
try
{
socket.Listen(5);
Socket newSocket=socket.Accept();
newSocket.Receive(byteMessage);
string sTime = DateTime.Now.ToShortTimeString ( ) ;
string msg=sTime+":"+"Message from:";
msg+=newSocket.RemoteEndPoint.ToString()+Encoding.Default.GetString(byteMessage);
this.listBox1.Items.Add(msg);
}
catch(SocketException ex)
{
this.lTemp.Text+=ex.ToString();
}
}
}
catch(System.ArgumentNullException E)
{
MessageBox.Show(E.Message);
}
catch(System.Net.Sockets.SocketException E)
{
MessageBox.Show(E.Message,"完成",MessageBoxButtons.OK,MessageBoxIcon.Stop);
}
catch( System.Exception E)
{
MessageBox.Show(E.Message,"完成",MessageBoxButtons.OK,MessageBoxIcon.Stop);
}
finally
{
socket.Close();
}
...全文
相关推荐
C#和java 之间基于Socket的通信
- 可使用网络抓包工具(如Wireshark)来查看数据传输过程,帮助定位问题。
java Socket与C#通信中中文乱码问题的解决方案
在Java和C#之间进行Socket通信时,遇到中文乱码问题主要是由于编码格式不一致导致的。Java默认使用UTF-8编码,而C#在处理字符串时可能使用其他编码,如GBK或ASCII。
C# Socket实现大文件分包传输
本文将深入探讨如何使用C#语言通过Socket实现大文件的分包传输,以解决在数据传输过程中可能遇到的网络拥堵、内存限制等问题。首先,理解Socket的基本概念。
C# 稳定的Socket组件
C#作为.NET框架下的主要编程语言,提供了丰富的类库来支持Socket编程,使得开发者能够构建稳定、高效的网络应用。本篇将详细介绍"C#稳定的Socket组件"的相关知识点。
C# Socket编程入门实例
总的来说,C# Socket编程是网络编程的基础,理解并掌握Socket的使用对于开发网络应用至关重要。


