python socket编程腾讯云下报错[Errno 99] Cannot assign requested address的解决方式

先写服务端server.py:

import socket
import time

HOST = ‘172.17.xx.xx‘  #服务器的私网IP
#HOST = ‘localhost‘
PORT = 8001
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((HOST, PORT))
sock.listen(5)
while True:
    connection,address = sock.accept()
    try:
        connection.settimeout(10)
        buf = connection.recv(1024)
        if buf:
            connection.send(b‘welcome to server!‘)
            print(‘Connection success!‘)
        else:
            connection.send(b‘please go out!‘)
    except socket.timeout:
        print (‘time out‘)
    connection.close()
 

客户端client.py:

import socket
import time

#HOST = ‘localhost‘
HOST = ‘212.64.xx.xx‘  #服务器的公网IP
PORT = 8001
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
time.sleep(2)
sock.send(b‘1‘)
print (sock.recv(1024).decode())
sock.close()  

使用本地测试(即HOST=‘localhost‘)是可以的,但是在腾讯云/阿里云上报错“[Errno 99] Cannot assign requested address”,解决方法:服务端的ip填私网ip,客户端填公网ip。

参考链接:

1. https://blog.csdn.net/weixin_41656968/article/details/80042554

2. https://blog.csdn.net/weixin_43146445/article/details/93506761

原文地址:https://www.cnblogs.com/lfri/p/11978802.html

时间: 2024-10-10 21:34:12

python socket编程腾讯云下报错[Errno 99] Cannot assign requested address的解决方式的相关文章

Linux socket.error: [Errno 99] Cannot assign requested

Python 使用 from pymongo import MongoClient 连接mongodb,由于没有关闭连接,导致 netstat -alnt|wc -l达到几万个 socket.error: [Errno 99] Cannot assign requested address 网上你去搜,基本都是说bind的时候,地址已经被用了,都是胡扯.地址被用报的错误应该是: Address already in use才对 然后我看得都是英文的,说明外国人也不是想象中的那么一丝不苟, 言归正

转 : Apache启动报错:could not bind to address [::]:443 解决办法

转:Apache启动报错:could not bind to address [::]:443 解决办法 安装Apache服务器的时候,报如下错误: Installing the 'apache' service The 'apache' service is successfully installed.Testing httpd.conf....Errors reported here must be corrected before the service can be started.(

Socket connect error 99(Cannot assign requested address)

转载请注明转自: 存储系统研究, 本文固定链接:socket connect error 99(Cannot assign request address) 这是最近使用libcurl写http服务的压力测试的时候遇到的一个问题,其直接表象是客户端在发送http请求时失败,最终原因是客户端的TIME_WAIT状态的socket进程过多,导致端口被占满.下面看整个分析过程: (1) 首先看产生错误的源码: /* get it! */ res = curl_easy_perform(curl_han

解决腾讯云配置报错:SQLite 3.8.3 or later is required (found 3.7.17)

问题描述: Django3.x之后版本需要SQLite3.8.3及以后的版本的支持,但是centos默认安装SQLite的版本为3.7.17,所以在运行python manage.py startapp polls时报错. 解决办法: 1. 重装降级Django. 2. 升级SQLite. 1. 重装降级Django pip uninstall django pip install django==2.1.8 2. 升级SQLite # 新建目录 mkdir sqlite3Dir cd sqli

[译]Python - socket.error: Cannot assign requested address

原文来源: https://stackoverflow.com/questions/48306528/python-socket-error-cannot-assign-requested-address 问: 我写了一个聊天服务器,但是我不能够将socket绑定到一个IP地址,具体代码如下: import sys import os import socket HOST = "194.118.168.131" SOCKET_LIST = [] RECV_BUFFER = 4096 P

Python Socket 编程——聊天室演示样例程序

上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和client的代码了解主要的 Python Socket 编程模型.本文再通过一个样例来加强一下对 Socket 编程的理解. 聊天室程序需求 我们要实现的是简单的聊天室的样例,就是同意多个人同一时候一起聊天.每一个人发送的消息全部人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.例如以下图: 图来自:http://www.ibm.com/developerworks/linux/tu

python/socket编程之粘包

python/socket编程之粘包 粘包: 只有TCP有尿包现象,UDP永远不会粘包. 首先需要掌握一个socket收发消息的原理 发送端可以是1k,1k的发送数据而接受端的应用程序可以2k,2k的提取数据,当然也有可能是3k或者多k提取数据,也就是说,应用程序是不可见的,因此TCP协议是面来那个流的协议,这也是容易出现粘包的原因而UDP是面向笑死的协议,每个UDP段都是一条消息,应用程序必须以消息为单位提取数据,不能一次提取任一字节的数据,这一点和TCP是很同的.怎样定义消息呢?认为对方一次

Python Socket 编程——聊天室示例程序

原文:Python Socket 编程--聊天室示例程序 上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的理解. 聊天室程序需求 我们要实现的是简单的聊天室的例子,就是允许多个人同时一起聊天,每个人发送的消息所有人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.如下图: 图来自:http://www.ibm.com/de

PYTHON SOCKET编程简介

原文地址: PYTHON SOCKET编程详细介绍 Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发. 下面讲的是Socket模块功能 1.Socket 类型 套接字格式: socket(family,type[,protocal]) 使用给定的地址族.套接字类型.协议编号(默认为0)来创建套接字. socket类型 描述 socke