Python网络编程

来源:互联网 发布:大数据的影响因素 编辑:程序博客网 时间:2024/05/29 03:00

Socket简介:

    Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。
  1. IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。
  2. 端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通讯前必须要分配一个没有被访问的端口号。
  3. 连接:指两个进程间的通讯链路。

socket()函数
Python 中,我们用 socket()函数来创建套接字,语法格式如下

socket.socket([family[, type[, proto]]])

实例(服务端和客户端聊天)
我们使用 socket 模块的 socket 函数来创建一个 socket 对象
先创建一个服务端

import socket#创建服务套接字 serversocketss =socket.socket(socket.AF_INET,socket.SOCK_STREAM)print("创建服务套接字")#服务套接字绑定主机,绑定端口号ss.bind(("localhost",9999))print("绑定端口和主机")ss.listen(5)#限制访问人数print("开始等待客户请求")c=ss.accept();print("某个客户连接到我了")while True:    msg=c[0].recv(1024)    print(msg.decode())

接下来我们写一个简单的客户端实例连接到以上创建的服务。
客户端

import socketimport sys# 创建 socket 对象s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 获取本地主机名host = socket.gethostname()# 设置端口好port = 9999# 连接服务,指定主机和端口s.connect((host, port))# 接收小于 1024 字节的数据msg = s.recv(1024)s.close()print (msg.decode('utf-8'))

然后运行服务端文件和客户端文件可以互相发送数据。