socket简介
Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,
这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
总之,通过socket,我们可以方便快捷的实现网络程序编程。
socket编程思路
TCP服务端:
1 创建套接字,绑定套接字到本地IP与端口
# socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.bind()
2 开始监听连接 #s.listen()
3 进入循环,不断接受客户端的连接请求 #s.accept()
4 然后接收传来的数据,并发送给对方数据 #s.recv() , s.sendall()
5 传输完毕后,关闭套接字 #s.close()
TCP客户端:
1 创建套接字,连接远端地址
# socket.socket(socket.AF_INET,socket.SOCK_STREAM) , s.connect()
2 连接后发送数据和接收数据 # s.sendall(), s.recv()
3 传输完毕后,关闭套接字 #s.close()
代码:
用户端:
import socket
s1=socket.socket()
address = (‘127.0.0.1‘, 1314)
s1.connect(address)
while True:
word=raw_input(‘input ur word plz: ‘)
s1.send(word.encode(‘utf-8‘))
data= s1.recv(1024)
if word=="quit":
break
print(data.encode(‘utf-8‘))
s1.close()
服务端:
import socket
s=socket.socket()
address=(‘127.0.0.1‘,1314)
s.bind(address)
s.listen(5)
while True:
c,addr=s.accept()
print ‘address:‘,addr
while True:
data=c.recv(1024)
print(data.encode(‘utf-8‘))
word=raw_input(‘input ur word plz: ‘)
c.send(word.encode(‘utf-8‘))
结果图:
原文地址:https://www.cnblogs.com/wjt1996/p/12026400.html