×

import socket

import socket(菜鸟求教一个关于python socket的问题)

admin admin 发表于2024-02-17 17:59:20 浏览26 评论0

抢沙发发表评论

本篇文章给大家谈谈import socket,以及菜鸟求教一个关于python socket的问题对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

菜鸟求教一个关于python socket的问题

情况时这样,最近刚学python,一直使用的文本,在学到socket时自己尝试写了一个小脚本,部分语句如下:import socketself.service=socket.socket(socket.AF_INET,socket.SOCK_STREAM)python 运行无错最近又发现,原来eclipse是有python扩展包的,于是尝试把自己写的东西放到eclipse中运行,然后就报错了:self.service=socket.socket(socket.AF_INET,socket.SOCK_STREAM)AttributeError: ’module’ object has no attribute ’AF_INET’ctrl+左键放到AF_INET提示此值存放在_socket下,于是有以下尝试:import socketimport _socketprint _socket.AF_INET #无报错,返回2print socket.AF_INET #报错于是修改了脚本import _socket as socket我的脚本运行正常首先,我系统的环境使用的时python2.6,eclipse中,windows-》preferences-》interpreter - python这里面的lib包(指向/usr/bin/python2.6),与我在终端的输出sys.path输出的值时一样的然后,我的问题:1,是不是在python中有两个模块,一个叫socket,一个叫_socket?2,为什么在终端执行,可以直接import socket.AF_INET,而在eclipse中则需要import _socket?可能你的测试脚本或当前路进下有其他脚本也叫socket,优先被载入造成错误,试试import后立刻打印路径看看是不是标准的那个...》》》 import socket》》》 print socket.__file__C:\Python27\lib\socket.pyc》》》

importsocket是什么意思

import socket的话 要用socket.AF_INET 因为AF_INET这个值在socket的名称空间下 from socket import* 是把socket下的所有名字引入当前名称空间

python执行以下代码报:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接

python执行八错:ConnectionRefusedError: 由于目标计算机积极拒绝,无法连接。是设置错误造成的,解决方法如下:

1、首先,打开py文件,如下图代码。

2、然后运行py文件提示报错系统找不到指定文件,从网上下载一个chromedriver.exe文件,放在Python根目录下。

3、然后,再次运行run——run module。

4、打开窗口如下图。

5、这样就不会报错了。

如何增加Python打开的socket数目

首先服务端这边的实现如下:import socket, tracebackhost = ’’ # Bind to all interfacesport = 51500# Step1: 创建socket对象s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# Step2: 设置socket选项(可选)s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)# Step3: 绑定到某一个端口s.bind((host, port))# Step4: 监听该端口上的连接while 1:try:message, address = s.recvfrom(8192)print "Got data from ", addresss.sendto("Data is received succeefully.", address)except (KeyboardInterrupt, SystemExit):print "raise"raiseexcept :print "traceback"traceback.print_exc()其中,host置为空,意思是可以绑定到所有的接口和地址,无论是哪个客户端的请求,只要是绑定到了同样的端口,那么服务器就可以监听到这个请求。在tcp连接中,监听客户端的请求需要用到listen或accept函数,并有一个专门的socket和远程极其连接。接着使我们的客户端实现:import socket, sys# Step1: 输入host和port信息host = raw_input(’please input host name: ’)textport = raw_input(’please input textport: ’)# Step2: 创建socket对象s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)try:port = int(textport)except ValueError:port = socket.getservbyname(textport, ’udp’)# Step3: 打开socket连接 s.connect((host, port))# Step4: 发送数据print "Enter data to transmit: "data = sys.stdin.readline().strip()s.sendall(data)# Step5: 接收服务器发过来的数据print "Looking for replies; press Ctrl-C or Ctrl-Break to stop"while 1:buf = s.recv(2048)if not len(buf):breaksys.stdout.write(buf)这个例子就是这么简单,实现起来和C语言版的差不多。看来,只要是了解socket编程的,用不同的语言实现也会相差无几。

编写一个简单的python服务器程序,求下面代码的逐行注释!!

这个主要是要对socket的基本通讯流程比较熟悉,socket server端的流程是建立socketbind到特定的端口listen指定连接数量accept接受连接建立连接后用read/write通讯完成后用close清理资源import socket 导入socket库host=’’ 指明需要绑定的ip,为空应该是绑定本机所有Ipport=51423 绑定的端口号s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 创建sockets.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) 设置socket的属性s.bind((host,port)) 绑定端口s.listen(1) 设置只允许一个client连接print ("Server is running on port %d;press Ctrl-C to terminate." % port) 打印信息,提示端口号while 1: 死循环等待连接 clientsock,clientaddr=s.accept() 等待直至有client连接,分别返回通讯用的socket和client的地址 clientfile=clientsock.makefile(’rw’,0) 创建用于通讯用的虚拟文件 clientfile.write("Welcome,"+str(clientaddr)+"\n") 向client发送消息 clientfile.write("please enter a string:") 向client发送消息 line=clientfile.readline().strip() 读取client消息 clientfile.write("you entered %d characters.\n" % len(line)) 向client发送消息 clientfile.close() 关闭虚拟文件 clientsock.close() 关闭通讯用socket,通讯结束

python3套接字udp设置接受数据超时

Sometimes,you need to manipulate the default values of certain properties of a socket library, for example, the socket timeout.设定并获取默认的套接字超时时间。1.代码 1 import socket 2 3 4 def test_socket_timeout(): 5 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 6 print("Default socket timeout: %s" % s.gettimeout()) 7 # 获取套接字默认超时时间 8 s.settimeout(100) 9 # 设置超时时间10 print("Current socket timeout: %s" % s.gettimeout())11 # 读取修改后的套接字超时时间12 13 14 if __name__ == ’__main__’:15 test_socket_timeout()2. AF_INET和SOCK_STREAM解释1 # 地址簇2 # socket.AF_INET IPv4(默认)3 # socket.AF_INET6 IPv64 # socket.AF_UNIX 只能够用于单一的Unix系统进程间通信5 6 # socket.SOCK_STREAM(数据流) 提供面向连接的稳定数据传输,即TCP/IP协议.多用于资料(如文件)传送。3.gettimeout()和settimeout()解释 1 def gettimeout(self): # real signature unknown; restored from __doc__ 2 """ 3 gettimeout() -》 timeout 4 5 Returns the timeout in seconds (float) associated with socket 6 operations. A timeout of None indicates that timeouts on socket 7 operations are disabled. 8 """ 9 return timeout10 11 12 def settimeout(self, timeout): # real signature unknown; restored from __doc__13 """14 settimeout(timeout)15 16 Set a timeout on socket operations. ’timeout’ can be a float,17 giving in seconds, or None. Setting a timeout of None disables18 the timeout feature and is equivalent to setblocking(1).19 Setting a timeout of zero is the same as setblocking(0).20 """21 pass22 # 设置套接字操作的超时期,timeout是一个浮点数,单位是秒。值为None表示没有超时期。23 # 一般,超时期应该在刚创建套接字时设置,因为它们可能用于连接的操作(如 client 连接最多等待5s )4.运行结果1 Default socket timeout: None2 Current socket timeout: 100.0

python socket向客户端广播问题

import socket,tracebackhost = ’2.2.3.5’port = 85txt = input("请输入广播内容:")s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)s.bind((host,port))print "Listen on the port 85......"while True: try: sock,addr = s.recvfrom(8192) print "Receive data from:",addr s.sendto(txt,addr)#这里就是填写发送内容的 except (KeyboardInterrupt,SystemExit): raise except: traceback.print_exc()#未对以上代码的正确性进行验证。

文章分享结束,import socket和菜鸟求教一个关于python socket的问题的答案你都知道了吗?欢迎再次光临本站哦!