Jeoffreyyang

导航

Python全栈开发学习笔记【Day18】--socket编程

武老师教学笔记

网络编程

角色分为服务端和客户端

1,创建进程,等待远程连接

 1 import socket
 2 sk = socket.socket()    #创建对象
 3 sk.bind(('127.0.0.1',9999,)) #绑定端口,输入元祖
 4 sk.listen(5)  #启动监听,支持5个等待的远程连接
 5 
 6 while True:
 7     conn,address=sk.accept()        #接收客户端的请求,等待客户端连接,阻塞后面的代码
 8     print(conn,address)
 9     conn.sendall(bytes('欢迎致电Jeff',encoding='utf-8'))   # 发送消息,字节码,需指定编码
10     while True:
11         ret_bytes=conn.recv(1024)   #最大接收1024字节
12         ret_str=str(ret_bytes,encoding='utf-8')
13         print(ret_str)
14         if ret_str=='q':
15             # print(ret_str)
16             break
17         conn.sendall(bytes(ret_str+"",encoding='utf-8'))
 1 import socket
 2 obj = socket.socket()   #创建socket对象
 3 obj.connect(('127.0.0.1',9999,)) #创建连接
 4 
 5 ret_bytes=obj.recv(1024)       #阻塞 ,等待服务端发送消息
 6 ret_str=str(ret_bytes,encoding='utf-8')  #接受字节码
 7 print(ret_str)
 8 while True:
 9     inp = input('输入要发送的内容:')
10     # obj.sendall(bytes(inp,encoding='utf-8'))
11     # ret = str(obj.recv(1024), encoding='utf-8')
12     # print(ret)
13     if inp=='q':
14         obj.sendall(bytes(inp, encoding='utf-8'))
15         break
16     else:
17         obj.sendall(bytes(inp,encoding='utf-8'))
18         ret=str(obj.recv(1024),encoding='utf-8')
19         print(ret)
20 obj.close()

 

 

Socket

聊天机器人

FTP上传

粘包

posted on 2016-07-20 21:04  Jeoffreyyang  阅读(66)  评论(0)    收藏  举报