Python小推车python学习

Python学习打call第四十二天:socket编程

2019-03-18  本文已影响15人  暖A暖

1.socket编程的概念

2.socket( )类详解

3.TCP服务器端代码实现

import socket
from pprint import pprint

# 创建TCP连接
socket_instance = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket_instance.bind(('127.0.0.1', 9000))

# 操作系统可以挂起的最大连接数,如果同一时间的连接数超过5,拒绝其他的连接
socket_instance.listen(5)

# 循环接收新的客户端连接
while True:
    # 接收客户端的请求,且获取新socket对象和客户端信息
    new_socket, client_addr = socket_instance.accept()

    # 循环接收已连接的客户端发送的数据
    while True:
        # 从缓存区中读取1024字节信息
        data = new_socket.recv(1024).decode()
        # 返回客户端的一下信息
        pprint(data)
        # 返回客户端地址 ('127.0.0.1', 51978)
        pprint(client_addr)
        # 发送数据
        new_socket.sendall('Server has received your msg'.encode())

4.TCP客户端代码实现

import socket

# 创建TCP连接
socket_instance = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket_instance.connect(('127.0.0.1', 9000))
while True:
    cmd = input("请输入您想说的话:")
    socket_instance.send(cmd.encode())
    data = socket_instance.recv(1024)
    print(data)

5.UDP服务器端代码实现

import socket

# 创建UDP连接
socket_instance = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
socket_instance.bind(('127.0.0.1', 9000))

# 循环接收新的客户端连接
while True:
    # 接收客户端的请求,且获取新socket对象和客户端信息
    data, client_addr = socket_instance.recvfrom(1024)
    print(data.decode())
    socket_instance.sendto('Server has receive your data'.encode(), client_addr)

6.UDP客户端代码实现

import socket

# 创建socket实例
socket_instance = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

while True:
    data = input("请输入您想说的话:")
    socket_instance.sendto(data.encode(), ('127.0.0.1', 9000))
    data, server_addr = socket_instance.recvfrom(1024)
    print(data.decode())

7.服务器端socket实例对象创建连接的方法有:

8.客户端socket实例对象创建连接的方法有:

9.客户端和服务器端socket实例对象都有的方法:

10.TCP 和UDP的区别有哪些

11.UDP 服务器端的实现步骤

12.UDP客户端的实现步骤

上一篇 下一篇

猜你喜欢

热点阅读