在发送TCP数据时,数据会被传输至已建立的套接字连接。发送操作的结果将返回实际发送的字节数,此数值可能小于原始数据的总字节数。
s.()
发送完整的TCP数据,需将数据传至已建立的套接字连接,发送过程中会尽力将所有数据传输完毕。若传输成功,则无返回值;若传输失败,则会引发异常。
s.()
接收UDP数据的过程与使用recv()函数相似,然而其返回值包括两个部分,即(data,)。这里的data代表一个包含接收数据的字符串,而另一个部分则是发送数据的套接字地址。
s.()
向套接字发送UDP数据包,需指定一个由逗号分隔的(地址,端口号)元组来定义目标远程地址,操作完成后,系统将返回实际发送的字节数。
s.close()
关闭套接字
s.()
返回连接套接字的远程地址。返回值通常是元组(,port)。
s.()
返回套接字自己的地址。通常是一个元组(,port)
s.(level,,value)
设置给定套接字选项的值。
s.(level,)
[]
s.()
设定套接字操作的等待时间,需指定一个以秒为单位的浮点数值。若该数值为空,则意味着不设定超时限制。通常情况下,超时限制应在套接字创建之初就进行配置,以便在执行连接等操作时能够应用。
s.()
返回当前设定的超时时间长度,以秒为单位;若未设定超时时间,则输出None。
s.()
返回套接字的文件描述符。
s.(flag)
若flag值为零,需将套接字调整为非阻塞操作模式;反之,若flag值非零,则套接字将保持阻塞模式(该模式为默认设置)。在非阻塞模式下,若recv()函数调用未检测到数据,或send()函数调用无法即时完成数据发送,将触发.error异常。
s.()
创建一个与该套接字相关连的文件
简单实例服务端
我们运用模块中的函数来构建一个对象,该对象能够通过调用其他函数来配置一项服务。
目前,我们能够利用bind函数来设定服务的端口号,具体操作为指定port参数。
随后,我们执行了对象的特定函数。此函数负责监听客户端的接入请求,并在成功建立连接后,返回一个表示客户端已接入的对象。
完整代码如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:server.py
引入 socket 编程模块,以实现网络通信功能。
s 是通过调用 socket 类的 socket 方法所创建的一个 socket 对象。
socket.gethostname() 函数用于,,获取当前运行该程序的本地主机的名称。
端口设定为12345。
s绑定至(host, port)的端口上
s.startListening(5) # 静待客户端的接入请求
while True:
客户端连接成功,获取连接地址和端口号。
print '连接地址:', addr
c.send('欢迎访问W3C教程!')
关闭连接操作执行,c对象调用close方法。
客户端
我们接下来将编写一个简易的客户端程序,使其能够连接到之前所建立的服务。该服务的端口号设定为12345。
使用(port)端口方法建立与指定服务商主机的TCP连接。建立连接后,我们能够接收服务端发送的数据。请注意,在操作结束之后,务必关闭该连接。
完整代码如下:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:client.py import socket # 导入 socket 模块 s = socket.socket() # 创建 socket 对象 host = socket.gethostname() # 获取本地主机名 端口设定为12345,具体配置完成。 s.connect((host, port)) print s.recv(1024) s.close()
现在我们打开两个终端,第一个终端执行 .py 文件:
$ python server.py
第二个终端执行 .py 文件:
$ python client.py 欢迎访问W3C教程!
这是我们再打开第一个终端,就会看到有以下信息输出:
该地址为连接点,具体为IP地址192.168.0.118,端口号为62461。
模块
以下列出了 网络编程的一些重要模块:
协议功能用处端口号 模块
HTTP
网页访问
80
, ,
NNTP
扫一扫在手机端查看
-
Tags : Python 网络编程
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1