socket:通常每个套接字地址(协议/网络地址/端口)只允许使用一次

有两种解决方法,一种是加入try{}catch(){},程序就不会抱错了;一种是在设置好监听SOCKET后,将SOCKET的属性设置为可重复使用地址,如:
//创建监听SOCKET

 socketListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 

//设置SOCKET允许多个SOCKET访问同一个本地IP地址和端口号

  socketListen.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
时间: 2024-10-03 21:54:36

socket:通常每个套接字地址(协议/网络地址/端口)只允许使用一次的相关文章

C#利用 HttpWebRequest 类发送post请求,出现“套接字(协议/网络地址/端口)只允许使用一次”问题

声明:问题虽然已经被解决,但是并没有明白具体原理,欢迎大佬补充. 最近网站出现一个问题,在C#里面使用  HttpWebRequest 类去发送post请求,偶尔 会出现 “套接字(协议/网络地址/端口)只允许使用一次” 的异常,很明显应该是端口被占用. 原因排查: 1.网上说最多就是其他程序占用端口:因为已经上线,并且有时候可以正常运行,因此排除其他程序占用端口的可能,而且我网站用的就是80端口. 2.第二个可能原因就是接口性能较差,占用较长处理时间:我 给post的目标接口(因为接口也是本身

[解决]通常每个套接字地址只允许使用一次

我们在做socket的开发的时候,经常会遇到这个错误:通常每个套接字地址 (协议/网络地址/端口)只允许使用一次 错误指示很明确:通信端口被占用了,导致通信无法进行. 但为什么端口被占用了呢?什么端口被占用了? 这里其实有一个大前提:你的程序中有没有指定socket通信端口? 如果指定了,解决办法很简单,每次通信完成手动释放就行了.下次通信重新建立连接. 如果没有指定,说明以下几点(可能你命中的是其中一点): 1.你的服务器开启的端口数太少: 2.连接释放等待时间太长: 3.你的socket通信

socket IPC(本地套接字 domain)

1.简介 socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket.虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包.计算校验和.维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程.这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的.UNIX

【UNIX网络编程(一)】套接字地址结构、网络字节序和地址转换函数

引言:套接字地址结构在网络编程的每个实现中都要用到,因此掌握套接字地址结构是以后编写网络程序的前提,地址结构可以在两个方向上传递:从进程到内核和从内核到进程.地址转换函数在地址的文本表达和他们存放在套接字地址结构中的二进制值之间进行转换. 大多数套接字函数都需要一个指向套接字地址结构的指针作为参数.不同协议都有自己的套接字地址结构.通用的套接字地址结构是sockaddr.IPv4套接字地址结构是定义在头文件<netinet/in.h>中的sockaddr_in,其POSIX定义如下: stru

2017.07.09 Python网络编程之重用套接字地址

1.重用套接字地址: # -*- coding: UTF-8 -*-# 如果在某个端口上运行一个Python套接字服务器,连接一次后便终止了运行,就不能在使用这个端口了# !usr/bin/env python# Python Network Programming Cookbook --Chapter -1# This program is optimized for Python 2.7# It may run on any other version with/without modifi

socket模块(套接字模块)

socket模块(套接字模块) 一.最简单版本(互传一次就结束) # 客户端 import socket client = socket.socket() client.connect(('127.0.0.1', 8080)) # 8080是端口号 ''' 来源百度百科 '127.0.0.1'是本机回还地址,不属于任何一个有类别地址类.它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口.在Windows操作系统中也有相似的定义,所以通常在安装网卡前就可以ping通这个本地回环地址.一般

套接字地址结构

大多数套接字函数都需要一个指向套接字地址结构的指针作为参数.每个协议簇抵都定义它自己的套接字地址结构 这些结构的名字均以sockaddr_开头,并以对应每个协议簇的唯一后缀结尾 1.IPv4套接字地址结构 IPv4套接字地址结构通常称为:网际套接字地址结构 它以sockaddr_in命名 struct  in_addr{ in_addr_t s_addr;//32位无符号整数类型 }; struct sockaddr_in{ unit8_t sin_len;//套接字地址结构长度 它是一个无符号

套接字编程简介: IPV4套接字地址结构/ 通用套接字地址结构/ IPV6套接字地址结构

IPv4套接字地址结构通常也称为"网际套接字地址结构",它以sockaddr_in命名,定义在<netinet/in.h>头文件中. struct in_addr { in_addr_t s_addr;/*32-bit IPv4 address*/ /*network byte ordered*/ }; struct sockaddr_in { uint8_t sin_len;/*length if structure(16)*/ sa_family_t sin_famil

IPv4套接字地址结构

一.IPv4套接字地址结构(POSIX定义) (1)长度字段sin_len是为增加对OSI协议的支持而随4.3BSD-Reno添加的:并不是所有的厂家都支持套接字地址结构的长度字段,而且POSIX规范也不   要求有这个成员: (2)POSIX规范只需要这个结构中的3个字段:sin_family.sin_addr和sin_port:对于符合POSIX的实现来说,定义额外的结构字段是可以接受的 二.POSIX规范要求的数据类型 (1)POSIX规范定义u_char.u_short.u_int和u_