社区
C#
帖子详情
socket.connect在什么时候会报“通常每个套接字地址(协议/网络地址/端口)只允许使用一次”的异常?
panxin
2007-02-27 06:02:29
如题
...全文
1459
12
打赏
收藏
socket.connect在什么时候会报“通常每个套接字地址(协议/网络地址/端口)只允许使用一次”的异常?
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
灰太狼
2007-03-02
打赏
举报
回复
比如你的本機端口90被佔用了,然後你又使用90這個端口時,就會報這個錯誤
casablancaliu
2007-03-01
打赏
举报
回复
1 你用问端口没关闭
2 该端口在用了
panxin
2007-03-01
打赏
举报
回复
我不明白的是,socket.connect时所用到的本地端口号是系统分配的,它应该分配给我的是当前没有被使用的吧,如果是这样,就不应该出现“通常每个套接字地址(协议/网络地址/端口)只允许使用一次”的异常吧。
panxin
2007-03-01
打赏
举报
回复
把打开关闭端口放到线程外面去,线程只管发送,不管打开关闭端口,这样就不会造成冲突了,不过你多线程同时发送要注意接收端能不能正确分离。
========================================================
更详细的过程应该是:
1 准备要发送的数据(5000条),放入队列(Queue<string>)
2 为每个目标端口创建3个发送线程
3 每个发送线程检查队列中是否有数据需要发送,如果有,则创建到目标端口
的连接,发送数据,接收数据(超时为1秒),最后关闭连接。
4 队列中没有数据,则发送线程退出。
这样的操作流程没有办法把端口的打开和关闭操作放到线程外面去做。
另外,连接的创建和关闭代码如下:
Socket socket = null;
try
{
//创建连接
}
catch(Exception ex)
{
//输出异常
}
finally
{
if (socket!=null)
{
try
{
//关闭连接
}
catch(Exception exx)
{
//输出异常
}
}
}
程序运行阶段没有在关闭连接处发生过异常,所以应该可以确定每次连接的关闭都是成功的。
Ivony
2007-03-01
打赏
举报
回复
不能关闭进程,程序执行时不间断的向10个目标端口发送数据,发送数据的过程为:
1 创建到目标端口的连接(Socket.Connect)
2 发送数据(Socket.Send)
3 等待接收数据,超时时间为1秒(Socket.Recive)
4 关闭连接(Socket.Close)
把打开关闭端口放到线程外面去,线程只管发送,不管打开关闭端口,这样就不会造成冲突了,不过你多线程同时发送要注意接收端能不能正确分离。
panxin
2007-03-01
打赏
举报
回复
没错,但是系统分配的是你用于连接的PORT,而不是你要连接的PORT。也就是说你要连接192.168.56.6:6666这个地址吧,那么192.168.56.6这台机器的6666端口被占用了,所以报错了,而你用于连接192.168.56.6:6666的本机端口是系统指定的。
==============================================
但是目标端口是有监听队列长度的啊,我设置的是1000。
那么按照你的意思,也就是说目标端口的监听队列已满,所以才会报这个错误,是吗?
灰太狼
2007-03-01
打赏
举报
回复
to 它应该分配给我的是当前没有被使用的吧
没错,但是系统分配的是你用于连接的PORT,而不是你要连接的PORT。也就是说你要连接192.168.56.6:6666这个地址吧,那么192.168.56.6这台机器的6666端口被占用了,所以报错了,而你用于连接192.168.56.6:6666的本机端口是系统指定的。
frank198381
2007-02-28
打赏
举报
回复
关闭进程,同一端口不可以同时使用。
panxin
2007-02-28
打赏
举报
回复
to csShooter:
进行连接的端口是由系统分配的啊,已经被占用的就不应该分配了吧
zc2cm
2007-02-28
打赏
举报
回复
进程里关闭正在运行的窗体~
csShooter
2007-02-28
打赏
举报
回复
多半都是端口重复打开
panxin
2007-02-28
打赏
举报
回复
关闭进程,同一端口不可以同时使用。
=======================================
不能关闭进程,程序执行时不间断的向10个目标端口发送数据,发送数据的过程为:
1 创建到目标端口的连接(Socket.Connect)
2 发送数据(Socket.Send)
3 等待接收数据,超时时间为1秒(Socket.Recive)
4 关闭连接(Socket.Close)
发送数据的工作是多线程同时进行,每个目标端口对应的发送线程数量是3个,
那么10个目标端口就是30个发送线程。
Python网络编程(
socket
)
答案就是
socket
.
socket
翻译为
套接字
,它本质就是在应用层和传输层(TCP/IP
协议
族通信)之间的一个抽象层,是一组接口,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。该课程包括OS...
解决[WinError 10048] 通常
每个
套接字
地址
(
协议
/
网络
地址
/
端口
)只
允许
使用
一次
1 遇到问题 执行ryu控制器的python程序时,出现下列问题: [WinError 10048] 通常
每个
套接字
地址
(
协议
/
网络
地址
/
端口
)只
允许
使用
一次
2 问题解决 由于在windows下ryu控制器执行的python程序占用的
端口
号通常为6653或6633,所以找到占用
端口
号的进程并kill掉即可解决。 步骤: (1)在cmd中查看启动程序的
端口
使用
情况: 命令: netstat -aon|findstr "6633" 查看占用
端口
3777的进程 ...
通常
每个
套接字
地址
(
协议
/
网络
地址
/
端口
)只
允许
使用
一次
。廖雪峰的教程
练习廖雪峰教程时,碰到这个报错:通常
每个
套接字
地址
(
协议
/
网络
地址
/
端口
)只
允许
使用
一次
也就是请求本地的网络
端口
,第
一次
正常显示,第二次就出错了。 原因:第
一次
程序运行之后,还一直在终端运行,一直占用着
端口
,第二次再运行,就
会报
错。 解决办法:关掉之前运行的程序,如果是在终端运行,直接关掉终端。然后再运行,就不
会报
错了。...
错误:通常
每个
套接字
地址
(
协议
/
网络
地址
/
端口
)只
允许
使用
一次
错误指示很明确:通信
端口
被占用了,导致通信无法进行。 但为什么
端口
被占用了呢?什么
端口
被占用了? 这里其实有一个大前提:你的程序中有没有指定
socket
通信
端口
? 如果指定了,解决办法很简单,每次通信完成手动释放就行了。下次通信重新建立连接。 如果没有指定,说明以下几点(可能你命中的是其中一点): 1、你的服务器开启的
端口
数太少; 2、连接释放等待时间太长;
mysql报错:Can’t start server: Bind on TCP/IP port: 通常
每个
套接字
地址
(
协议
/
网络
地址
/
端口
)只
允许
使用
一次
。
一、windows 【1】错误日志信息 解压文件下的,.err文件为windows mysql的错误日志文件 E:\sql_data\mysql-8.0.16-winx64\data\vipon.err 具体报错内容: 2020-04-01T03:26:56.615389Z 0 [ERROR] [MY-010262] [Server] Can‘t start server: Bind on TCP/IP port: 通常
每个
套接字
地址
(
协议
/
网络
地址
/
端口
)只
允许
使用
一次
。 【2】3306
端口
被占用 查
C#
110,537
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章