• 关于

    套接字

    的搜索结果

回答

建立Socket连接至少需要一对套接字,其中一个运行与客户端--ClientSocket,一个运行于服务端--ServiceSocket 1、服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。 2、客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。注意:客户端的套接字必须描述他要连接的服务器的套接字, 指出服务器套接字的地址和端口号,然后就像服务器端套接字提出连接请求。 3、连接确认:当服务器端套接字监听到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述 发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务端套接字则继续处于监听状态,继续接收其他客户端套接字的连接请求。

剑曼红尘 2020-04-10 12:57:39 0 浏览量 回答数 0

回答

名称accept()接收一个套接字中已建立的连接使用格式#include <sys/types.h> #include <sys/socket.h> int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);功能参数描述accept()系统调用主要用在基于连接的套接字类型,比如SOCK_STREAM和SOCK_SEQPACKET。它提取出所监听套接字的等待连接队列中第一个连接请求,创建一个新的套接字,并返回指向该套接字的文件描述符。新建立的套接字不在监听状态,原来所监听的套接字也不受该系统调用的影响。备注:新建立的套接字准备发送send()和接收数据recv()。参数:sockfd, 利用系统调用socket()建立的套接字描述符,通过bind()绑定到一个本地地址(一般为服务器的套接字),并且通过listen()一直在监听连接;addr, 指向struct sockaddr的指针,该结构用通讯层服务器对等套接字的地址(一般为客户端地址)填写,返回地址addr的确切格式由套接字的地址类别(比如TCP或UDP)决定;若addr为NULL,没有有效地址填写,这种情况下,addrlen也不使用,应该置为NULL;备注:addr是个指向局部数据结构sockaddr_in的指针,这就是要求接入的信息本地的套接字(地址和指针)。addrlen, 一个值结果参数,调用函数必须初始化为包含addr所指向结构大小的数值,函数返回时包含对等地址(一般为服务器地址)的实际数值;备注:addrlen是个局部整形变量,设置为sizeof(struct sockaddr_in)。如果队列中没有等待的连接,套接字也没有被标记为Non-blocking,accept()会阻塞调用函数直到连接出现;如果套接字被标记为Non-blocking,队列中也没有等待的连接,accept()返回错误EAGAIN或EWOULDBLOCK。备注:一般来说,实现时accept()为阻塞函数,当监听socket调用accept()时,它先到自己的receive_buf中查看是否有连接数据包;若有,把数据拷贝出来,删掉接收到的数据包,创建新的socket与客户发来的地址建立连接;若没有,就阻塞等待;为了在套接字中有到来的连接时得到通知,可以使用select()或poll()。当尝试建立新连接时,系统发送一个可读事件,然后调用accept()为该连接获取套接字。另一种方法是,当套接字中有连接到来时设定套接字发送SIGIO信号。返回值成功时,返回非负整数,该整数是接收到套接字的描述符;出错时,返回-1,相应地设定全局变量errno。错误处理Linux下,accept()把已等待的网络错误传给新建立的连接,当作是accept()返回的错误。这于其他的BSD实现是不同的。为了可靠运行,应该在accept()之后检测协议已定义的一些网络错误,并把这些错误当作EAGAIN并重试。对于TCP/IP协议来说,主要有错误:ENETDOWN,EPROTO,ENOPROTOOPT,EHOSTDOWN,ENONET,EHOSTUNREACH,EOPNOTSUPP和ENETUNREACH。

云栖技术 2019-12-02 02:35:11 0 浏览量 回答数 0

回答

Java套接字编程用于在不同JRE上运行的应用程序之间的通信。 Java套接字编程可以是面向连接的或无连接的。 Socket和ServerSocket类用于面向连接的套接字编程和DatagramSocket,而DatagramPacket类用于无连接套接字编程。套接字编程中的客户端必须知道两个信息: 服务器的IP地址 端口号

YDYK 2020-04-24 15:20:48 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

回答

要在系统上查找所有套接字文件,请运行: sudo find / -type s Mysql服务器系统在以下位置打开了套接字 /var/lib/mysql/mysql.sock 找到套接字所在的位置后,将其添加或编辑到/etc/my.cnf文件中,并带有套接字文件的路径: socket=/var/lib/mysql/mysql.sock 有时,启动命令行可执行文件的系统启动脚本会指定一个标志--socket=path。此标志可能会覆盖my.cnf位置,这将导致在my.cnf文件指示应在的位置找不到套接字。然后,当您尝试运行mysql命令行客户端时,它将读取my.cnf来查找套接字,但是由于它与服务器创建位置不同,因此找不到该套接字。因此,除非您关心套接字所在的位置,否则只需更改my.cnf使其匹配即可。 然后,停止mysqld进程。您的操作方式因系统而异。 如果您是Linux系统的超级用户,如果您不知道Mysql设置使用的特定方法,请尝试以下方法之一: service mysqld stop /etc/init.d/mysqld stop mysqladmin -u root -p shutdown 某些系统未设置为具有优雅的方式来停止mysql(或者由于某些原因mysql无法响应),因此您可以使用以下任一方法强制终止mysql: 一步: pkill -9 mysqld 两步(最不推荐): 使用pgrep mysql或找到mysql的进程IDps aux | grep mysql | grep -v grep 假设进程ID 4969以kill -9 4969 完成此操作后,您可能想要在其中查找pid文件/var/run/mysqld/并将其删除 确保套接字上的许可权允许运行mysqld的任何用户都可以对其进行读取/写入。一个简单的测试是将其打开以进行完全读/写,然后查看它是否仍然有效: chmod 777 /var/run/mysqld/mysqld.sock 如果这样可以解决问题,则可以根据安全设置根据需要调整套接字的权限和所有权。 另外,运行mysqld进程的用户必须可以访问套接字所在的目录。来源:stack overflow

保持可爱mmm 2020-05-10 19:46:53 0 浏览量 回答数 0

问题

任何Python套接字服务器框架?

祖安文状元 2020-02-21 17:34:30 13 浏览量 回答数 2

问题

连接被拒绝与python套接字错误

游客6qcs5bpxssri2 2019-12-01 19:52:04 22 浏览量 回答数 2

问题

什么时候需要套接字,什么时候需要请求?

几许相思几点泪 2019-12-29 19:25:46 0 浏览量 回答数 1

问题

什么时候需要套接字,什么时候需要请求?

几许相思几点泪 2019-12-29 20:27:40 0 浏览量 回答数 1

问题

wamp环境,所支持的套接字传输器只有tcp 和 udp,为什么?

落地花开啦 2019-12-01 19:55:42 843 浏览量 回答数 1

问题

FTP无法连接,提示:无法读取套接字: ECONNRESET - 连接被对方复位

1286698360369728 2019-12-01 19:00:03 157 浏览量 回答数 0

回答

Docker守候进程绑定的是一个unix socket,而不是TCP端口。这个套接字默认的属主是root,其他是用户可以使用sudo命令来访问这个套接字文件。因为这个原因,docker服务进程都是以root帐号的身份运行的。为了避免每次运行docker命令的时候都需要输入sudo,可以创建一个docker用户组,并把相应的用户添加到这个分组里面。当docker进程启动的时候,会设置该套接字可以被docker这个分组的用户读写。这样只要是在docker这个组里面的用户就可以直接执行docker命令了。

日拱一卒999 2019-12-02 01:59:12 0 浏览量 回答数 0

回答

据我知道的java和c++语言通信1.用套接字 2.用 corba 对于套接字相对简单些,但是容易出各种问题,corba需要过硬的知识

爵霸 2019-12-02 02:13:39 0 浏览量 回答数 0

回答

1.socket创建一个套接字 2.bind绑定ip和port 3.listen使套接字变为可以被动链接 4.accept等待客户端的链接 5.recv/send接收发送数据

茶什i 2019-12-02 03:09:05 0 浏览量 回答数 0

问题

linux下,两个UDP套接字可以同时绑定同一主机的不同端口吗?

杨冬芳 2019-12-01 20:26:48 1641 浏览量 回答数 2

问题

如何处理连接桌面时报错:客户端错误 0,套接字错误 10061 等等?

星尘linger 2020-03-24 22:23:05 0 浏览量 回答数 1

回答

■ 使用connect或WSAConnect,一个套接字首次建立了连接。■ 使用accept或WSAAccept,套接字被接受以后。■ 若send、WSASend、sendto或WSASendTo操作失败,返回了WSAEWOULDBLOCK错误,而且缓冲区的空间变得可用

a123456678 2019-12-02 01:59:23 0 浏览量 回答数 0

回答

在守护程序模式下使用Apache mod_wsgi并遵循以下准则。 更新:我之所以提到Apache是​​因为您回答了您的问题-我以为您是在谈论同时充当套接字服务器的Web应用程序。 Python库具有套接字服务器(请参阅文档)。AFAIK,您不能在Python中进行热代码重载而不会丢失数据包,因为您将需要专门为热代码重载而设计的东西,例如Erlang,否则就只有一个笨拙的套接字接收器来接收和排队数据包,并且更聪明后端程序,它执行代码重新加载和数据包处理。在这种情况下,您的接收者将充当代理。

祖安文状元 2020-02-21 17:34:38 0 浏览量 回答数 0

回答

对于轮询问题的一个常见解决方案中有个很少有人知道的技巧,包含了一个隐藏的回路网络连接。 本质上讲其思想就是:对于每个你想要轮询的队列,你创建一对连接的套接字。 然后你在其中一个套接字上面编写代码来标识存在的数据, 另外一个套接字被传给 select() 或类似的一个轮询数据到达的函数。下面的例子演示了这个思想: import queue import socket import os class PollableQueue(queue.Queue): def __init__(self): super().__init__() # Create a pair of connected sockets if os.name == 'posix': self._putsocket, self._getsocket = socket.socketpair() else: # Compatibility on non-POSIX systems server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(('127.0.0.1', 0)) server.listen(1) self._putsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._putsocket.connect(server.getsockname()) self._getsocket, _ = server.accept() server.close() def fileno(self): return self._getsocket.fileno() def put(self, item): super().put(item) self._putsocket.send(b'x') def get(self): self._getsocket.recv(1) return super().get() 在这个代码中,一个新的 Queue 实例类型被定义,底层是一个被连接套接字对。 在Unix机器上的 socketpair() 函数能轻松的创建这样的套接字。 在Windows上面,你必须使用类似代码来模拟它。 然后定义普通的 get() 和 put() 方法在这些套接字上面来执行I/O操作。 put() 方法再将数据放入队列后会写一个单字节到某个套接字中去。 而 get() 方法在从队列中移除一个元素时会从另外一个套接字中读取到这个单字节数据。 fileno() 方法使用一个函数比如 select() 来让这个队列可以被轮询。 它仅仅只是暴露了底层被 get() 函数使用到的socket的文件描述符而已。 下面是一个例子,定义了一个为到来的元素监控多个队列的消费者: import select import threading def consumer(queues): ''' Consumer that reads data on multiple queues simultaneously ''' while True: can_read, _, _ = select.select(queues,[],[]) for r in can_read: item = r.get() print('Got:', item) q1 = PollableQueue() q2 = PollableQueue() q3 = PollableQueue() t = threading.Thread(target=consumer, args=([q1,q2,q3],)) t.daemon = True t.start() # Feed data to the queues q1.put(1) q2.put(10) q3.put('hello') q2.put(15) ... 如果你试着运行它,你会发现这个消费者会接受到所有的被放入的元素,不管元素被放进了哪个队列中。

哦哦喔 2020-04-17 17:23:41 0 浏览量 回答数 0

问题

无法通过套接字'/var/mysql/mysql.sock'连接到本地MySQL服务器(38)

你的答案 2020-05-08 16:03:04 0 浏览量 回答数 1

问题

epoll的EPOLLOUT事件

a123456678 2019-12-01 20:07:38 1115 浏览量 回答数 1

问题

有关两个安卓手机的链接socket(套接字)编程的请教? 400 报错

爱吃鱼的程序员 2020-06-03 14:59:21 1 浏览量 回答数 1

问题

phpMyAdmin - 错误 #2002 - 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置)

石材 2019-12-01 20:04:21 1905 浏览量 回答数 1

问题

Socket使用TCP连接,无法连接自己购买的ECS服务器

zhuwt 2019-12-01 19:37:54 5007 浏览量 回答数 8

回答

Request是用于处理HTTP请求的高层API(内部使用套接字)。它不包含许多其他网络协议。当然,您可以直接使用套接字来处理HTTP,但是除非您有非常充分的理由这样做,否则您将只是在重新发明轮子。

几许相思几点泪 2019-12-29 20:27:48 0 浏览量 回答数 0

回答

Request是用于处理HTTP请求的高层API(内部使用套接字)。它不包含许多其他网络协议。当然,您可以直接使用套接字来处理HTTP,但是除非您有非常充分的理由这样做,否则您将只是在重新发明轮子。

几许相思几点泪 2019-12-29 19:25:55 0 浏览量 回答数 0

问题

我可以将Enum类型从字符串更改为字节吗?

is大龙 2020-03-24 15:49:17 0 浏览量 回答数 1

回答

由于某种原因,OS X上的mysql弄错了所需套接字文件的位置,但是值得庆幸的是,解决方案就像设置符号链接一样简单。 您可能有一个套接字(显示为零长度文件),其名称为/tmp/mysql.sock或/var/mysql/mysql.sock,但是一个或多个应用正在其他位置寻找它。用以下命令找出: ls -l /tmp/mysql.sock /var/mysql/mysql.sock 无需移动套接字,编辑配置文件,并且必须记住将编辑后的文件保留在本地且远离路径正确的服务器,只需创建一个符号链接即可,即使Mac放在错误的位置,Mac也可以找到所需的套接字! 如果您有,/tmp/mysql.sock但没有/var/mysql/mysql.sock... cd /var sudo mkdir mysql sudo chmod 755 mysql cd mysql sudo ln -s /tmp/mysql.sock mysql.sock 如果您有,/var/mysql/mysql.sock但没有/tmp/mysql.sock... cd /tmp ln -s /var/mysql/mysql.sock mysql.sock 您将需要创建目录和链接的权限,因此,如有必要,只需在上面的命令前加上sudo即可。来源:stack overflow

保持可爱mmm 2020-05-10 19:19:25 0 浏览量 回答数 0

问题

关于linux里父进程与子进程的文件共享

a123456678 2019-12-01 19:57:25 861 浏览量 回答数 1

问题

客户端套接字监听器(Android)

LiuWH 2020-01-19 12:10:57 0 浏览量 回答数 1

回答

Windows和Linux之间有所不同。如果您使用的是Unix域套接字,它将比使用TCP / IP稍快(因为开销较小)。 Windows默认使用TCP / IP,而Linux如果选择localhost则尝试使用Unix域套接字,如果使用127.0.0.1则使用TCP / IP。来源:stack overflow

保持可爱mmm 2020-05-17 12:19:15 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站