python3.x Day5 socket编程

socket编程:

socket 是大多应用层的底层的封装,实际封装的就是 发送,接收,但其实很复杂,在传输层协议之上(TCP/IP,UDP)

既然是网络通讯,一般按照服务端,客户端来处理:
服务端:
import socket

server=socket.socket() #创建一个socket对象
server.bind(("0.0.0.0",9999)) #创建服务端绑定的IP和端口,用于监听
server.listen(5) #开始监听

conn,addr=server.accept() #等待访问,如果有客户端访问,conn就是访问过来在服务端生成的对应链接对象,addr是客户端地址
print(type(addr),addr)

data=conn.recv(1024) #data存放客户端发过来的具体东西

m=data.upper() #对data进行加工,返回给客户端,看出让客户端看出有变化。

conn.send(m)

server.close()

客户端:

import socket
client=socket.socket() #创建一个socket对象,创建对象时,可以创建的类型有4种。当前采用默认值
# family=AF_INET(ipv4), type=SOCK_STREAM(TCP/IP)
#family是地址簇,
client.connect(("localhost",9999)) #创建链接
print(client.getsockname())
out_data=b"hello world" #定义要传输的东西,py3 必须是byte类型

#test
in_data=client.recv(1024) #从服务器端接收
print(in_data) #打印结果
#test

client.send(out_data) #向服务器端发送
in_data=client.recv(1024) #从服务器端接收
print(in_data) #打印结果
client.send(out_data) #向服务器端发送
in_data=client.recv(1024) #从服务器端接收
print(in_data) #打印结果
client.send(out_data) #向服务器端发送
in_data=client.recv(1024) #从服务器端接收
print(in_data) #打印结果

 

posted @ 2017-11-30 14:50  王玥  阅读(190)  评论(0编辑  收藏  举报