Python中的socket网络编程(TCP/IP,UDP)讲解

本文介绍了Python中使用socket进行网络编程的基本概念,包括服务器套接字和客户端套接字的创建,以及TCP/IP和UDP的区别。通过示例展示了如何建立TCP连接并交换数据,以及如何使用UDP进行无连接通信。最后,提供了一个简单的基于控制台的聊天室程序示例。
摘要由CSDN通过智能技术生成

Python中的socket网络编程(TCP/IP,UDP)讲解

在网络编程中的一个基本组件就是套接字(socket)。套接字基本上是两个端点的程序之间的“信息通道”。程序可能分布在不同的计算机上,通过套接字互相发送信息。套接字包括两个:服务器套接字和客户机套接字。在创建一个服务器套接字后,让它等待连接。这样它就在某个网络地址处(ip地址和端口的组合)监听,直到有客户端套接字连接。连接完成后,二者就可以进行交互了。

socket套接字
一个套接字就是socket模块中socket类的一个实例。它的实例化需要3个参数:
第1个参数是地址族,默认是socket.AF_INET(指定使用IPv4协议)
第2个参数是流,默认是socket.SOCK_STREAM(指定面向流的TCP协议),或者数据报socket.SOCK_DGRAM套接字。
第3个参数是使用的协议,默认是0

import socket
# s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 这里我们全部使用默认值就行了
s=socket.socket()

服务器套接字使用bind方法后,再调用listen方法去监听某个特定的地址。

s.bind(('127.0.0.1',9999))#绑定地址和端口
s.listen(5)#服务器开始监听客户端连接,允许排队等待的连接数目是5,一般都设5

端口是自己设的,ip我用的是本机的ip地址,当然如果服务器程序在其他主机上,就要换成其他的ip。端口号低于1024一般都被限制使用,它们被用于标准服务,例如端口80用于web服务。

服务器套接字开始监听后,它就静静的等待客户端的连接了。这个步骤使用accept方法完成,这个方法会阻塞直到客户端的连接。该方法返回一个格式为(client,address)的元组,client是客户端套接字,address是格式为(host,port)的元组。服务器在处理完与该客户端的连接后,再次调用accept方法开始等待下个连接,通常这个过程用一个无限循环实现。

while True:
    #接受一个客户端连接
    sock,addr=s.accept()#addr是个元组('127.0.0.1',端口)
    #接下来可以创建新线程来处理当前客户端的连接

现在我们来看客户端怎么连接服务器,客户端套接字使用connect方法连接服务器,在connect方法中使用的地址必须和服务器在bind方法中绑定的地址相同。

import socket
c=socket.socket()#创建客户端套接字
c.connect(('127.0.0.1'
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值