套接字入门:https://www.cnblogs.com/lich1x/p/10149998.html
'''
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()
复制代码
复制代码
#! /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()