C# 本机与本机连接,报错:通常每个套接字地址(协议/网络地址/端口)只允许使用一次) !! 如题, 我在本机测试一个 发送接收数据的程序,现在我把端口都设置为80,但程序一启动就会报错: (通常每个套接字地址(协议/网络地址/端口)只允许使用一次) 请问,客户端与服务端 端口该怎么设置? 谢谢!!!!!!!!!1 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 以下部分代码:Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Socket socketSend = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); public delegate void AddListItemHandler(string text); string recString1; public string Ip; public FrmReceive() { InitializeComponent(); //KillProcess(); IPEndPoint locEP = new IPEndPoint(IPAddress.Any, 8000); listener.Bind(locEP); listener.Listen(100); Thread acceptThread = new Thread(new ThreadStart(AcceptWorkThread)); acceptThread.Start(); }现在仍然是一样的问题,换了端口也不好使! IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8000); Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); server.Bind(endpoint); server.Listen(10); server.BeginAccept(new AsyncCallback(AccepteCallBack), server); EventDone.WaitOne(); Console.Read();这是一个一部的例子 服务端: static void Main(string[] args) { Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); EndPoint ep = new IPEndPoint(IPAddress.Any, 8000); server.Bind(ep); server.Listen(10); while (true) { Socket acceptSocket = server.Accept(); Thread thread = new Thread(new ParameterizedThreadStart(SendMessage)); thread.Start(acceptSocket); } } private static void SendMessage(object acceptSocket) { Socket accept = (Socket)acceptSocket; string stringToSend = "This is a message"; byte[] buffer = Encoding.Default.GetBytes(stringToSend); accept.Send(buffer); }客户端:Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); EndPoint ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8000); client.Connect(ep); byte[] buf = new byte[1024]; client.Receive(buf); Console.WriteLine(Encoding.Default.GetString(buf)); Console.Read(); 如何获得图像的DPI? 关于Columns.Add的重写方法 一个简单问题 打开解决方案,提示无法从Web服务器获取项目文件 如何获取GB2312编码的参数 要释放一个指针,指针指向链表,是不是先要释放指针所指空间呢? AccessibleObjectFromWindow 第三个参数guid如何获取 关于转义字符\0表示什么啊 新手关于编译问题!!! 为什么我的asp.net中,Web窗体控件在运行时不可见? C#怎么取道PDF文件里文档属性(title, auther, page size, pages etc)? winform中获取局域网中IP及MAC问题
以下部分代码:Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Socket socketSend = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
public delegate void AddListItemHandler(string text);
string recString1;
public string Ip;
public FrmReceive()
{
InitializeComponent(); //KillProcess();
IPEndPoint locEP = new IPEndPoint(IPAddress.Any, 8000);
listener.Bind(locEP); listener.Listen(100);
Thread acceptThread = new Thread(new ThreadStart(AcceptWorkThread));
acceptThread.Start();
}
现在仍然是一样的问题,换了端口也不好使!
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
server.Bind(endpoint);
server.Listen(10);
server.BeginAccept(new AsyncCallback(AccepteCallBack), server);
EventDone.WaitOne();
Console.Read();
这是一个一部的例子
{
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
EndPoint ep = new IPEndPoint(IPAddress.Any, 8000);
server.Bind(ep);
server.Listen(10);
while (true)
{
Socket acceptSocket = server.Accept();
Thread thread = new Thread(new ParameterizedThreadStart(SendMessage));
thread.Start(acceptSocket);
}
} private static void SendMessage(object acceptSocket)
{
Socket accept = (Socket)acceptSocket;
string stringToSend = "This is a message";
byte[] buffer = Encoding.Default.GetBytes(stringToSend);
accept.Send(buffer);
}
客户端:
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
EndPoint ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8000);
client.Connect(ep);
byte[] buf = new byte[1024];
client.Receive(buf);
Console.WriteLine(Encoding.Default.GetString(buf));
Console.Read();