C# 本机与本机连接,报错:通常每个套接字地址(协议/网络地址/端口)只允许使用一次) !!

hanhanmj 2009-09-10 01:47:50


如题, 我在本机测试一个 发送接收数据的程序,现在我把端口都设置为80,但程序一启动就会报错: (通常每个套接字地址(协议/网络地址/端口)只允许使用一次)

请问,客户端与服务端 端口该怎么设置?

谢谢!!!!!!!!!1
...全文
1091 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
鸭梨山大帝 2009-09-11
  • 打赏
  • 举报
回复
正解,80端口被占用.
启用其他的端口即可
bigdogsss 2009-09-11
  • 打赏
  • 举报
回复
en
cnzdgs 2009-09-11
  • 打赏
  • 举报
回复
设置断点调试看代码是不是被重复执行了,另外再多换几个端口试试,例如8001、8002等。
足球中国 2009-09-10
  • 打赏
  • 举报
回复
楼上的正解
dancingbit 2009-09-10
  • 打赏
  • 举报
回复
启动监听的代码被重复执行了,或者端口被其他程序占用了。
simenpeng 2009-09-10
  • 打赏
  • 举报
回复
服务器端 开启一个不常用的端口如6***
然后客户端也设置成6***
*是数字~!···
wb1125 2009-09-10
  • 打赏
  • 举报
回复
服务端: 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();
wb1125 2009-09-10
  • 打赏
  • 举报
回复
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();
这是一个一部的例子
hanhanmj 2009-09-10
  • 打赏
  • 举报
回复

以下部分代码:

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();
}


现在仍然是一样的问题,换了端口也不好使!
wb1125 2009-09-10
  • 打赏
  • 举报
回复
不要80端口。用一个打的端口如8000.

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧