python网络编程(socket)
一、scoket介绍
scoket:收消息,发消息
服务端:
- scoket()
- bind()
- listen()
- accept()
- read()
- write()
- read()
- close()
客户端:不用提供服务
- scoket()
- connect()
- writre()
- read()
- close()
私有地址:192.168.....
172.16
10.
127.0.0.1 本机地址
scoket类型:
二、socket简单实例
socket方法:
服务端:
1 #coding=utf-8 2 from socket import* 3 4 #监听套接字的连接和回应 5 #服务器端 6 myHost='' #‘’代表主机所有可用端口 7 myPort=50007 8 9 sockobj=socket(AF_INET,SOCK_STREAM)#创建一个TCP scoket 对象 10 sockobj.bind((myHost,myPort))#绑定服务端口号 11 sockobj.listen(5)#监听,允许5个挂起连接 12 13 while True:#一直监听直到进程被杀死 14 connection,address=sockobj.accept()#等待下个客户端连接 15 print('Server connected by:',address)#连接是新的scoket 16 while True: 17 data=connection.recv(1024)#读取新的客户端scoket,for 循环接收 18 if not data:break#发送接收报文给客户端 19 connection.send(b'Echo get your message:'+data)#直到结束关闭scoket,发送只能是b,bite格式 20 connection.close()
客户端:
1 #coding=utf-8 2 import socket 3 4 #客户端 5 import sys 6 from socket import * 7 serverHost='localhost' 8 serverPort=50007 9 10 message=[b'hello network world'] 11 12 if len(sys.argv)>1: 13 serverHost=sys.argv[1] 14 if len(sys.argv)>2: 15 message=(x.encode()for x in sys.argv[2:]) 16 17 sockobj=socket(AF_INET,SOCK_STREAM) 18 sockobj.connect((serverHost,serverPort)) 19 20 for line in message: 21 sockobj.send(line) 22 data=sockobj.recv(1024)#1024字节 23 print('Client received:',data) 24 25 sockobj.close()
运行结果:
服务端:
客户端:
三、利用scoket实现ssh