套接字入门(python3入门)

'''
1、什么是套接字socket
    socket把传输层以下的协议都封装成了简单接口,我们编写基于网络通信的软件只需要调用这些接口即可,
        我们写出的程序自然是遵循tcp/udp协议的。。。

    什么是互联网:
        互联网 = 物理连接介质 + 互联网通信协议

    ip+port 就可以标示出全世界范围内独一无二的一个基于网络通信的软件



2、为何要用socket
    目标:便携一个C/S架构的软件
    server端必须具备:
        1、服务端需要稳定运行,一直对外提供服务
        2、服务端必须绑定一个固定的地址(ip+port)
        3、服务端要支持并发


3、如何用socket
    套接字自制家族:AF_UNIX(基于文件),AF_INET(网络通信)
'''
#! /usr/bin/env python
# -*- coding: utf-8 -*-



import socket


#1 买手机
phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)    #socket_DRAM udp协议,socket_STREAM流式协议

# print('套接字对象1',phone)
#套接字1主要用来绑定,做准备工作


#2 绑定手机卡
phone.bind(('127.0.0.1',8080))  #port:0~65535


#3 开机
phone.listen(5) #backlog是半连接池,一般把半连接池的值写到配置文件中


#4 等待电话拨入
print('start...')
conn,client_addr=phone.accept()  #对应客户端的connect操作
# print('>>>>>>>>>>>')
# print('套接字对象2:',conn)   #套接字2 代表tcp建好的双向通路 收发数据
# print(client_addr)


#5 收发消息
data = conn.recv(1024)    #最大只能接收:1024bytes 收消息
send = conn.send(data.upper())

import time
time.sleep(100000)


#6 挂电话
conn.close()


#7 关手机
phone.close()
server
#! /usr/bin/env python
# -*- coding: utf-8 -*-



import socket



phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)    #socket_DRAM udp协议,socket_STREAM流式协议


phone.connect(('127.0.0.1',8080))  #port:0~65535
print('客户端连接请求已经发送!')

phone.send('hello'.encode('utf-8'))
data = phone.recv(1024)
print(data)


phone.close()
client

猜你喜欢

转载自www.cnblogs.com/lich1x/p/10149998.html