python网络编程
来源:互联网 发布:php javascript 区别 编辑:程序博客网 时间:2024/05/22 16:53
网络:
要解决那些问题
tcp udp http ftp pop3 smtp
tcp:可靠,有状态,长连接的协议
主叫方 被叫方
服务套接字
客户套接字 ==客户套接字
创建服务套接字
import threading
import socket
# 创建服务套接字
ss=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print("建立服务套接字")
#服务套接字绑定主机绑定端口号
ss.bind(("localhost",9999))
print("绑定端口和主机" )
ss.listen(5)
#接收客户套接字请求
print("开始等待客户的请求")
c=ss.accept() #线程阻塞
print("某个客户连接到我了")
def myrevc(c):
while True:
msg=c.recv(1024)
print(msg.decode())
threading._start_new_thread(myrevc,(c[0],))
while True:
msg=input()
c[0].send(msg.encode())
创建客户套接字
import socket
import threading
#创建客户套接字
c=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#输入要呼叫的服务套接字的ip 和端口
c.connect(("localhost",9999))
#创建一个用来接收信息的函数
def myrevc(c):
while True:
msg=c.recv(1024)
print(msg.decode())
threading._start_new_thread(myrevc,(c,))
#用来发送信息
while True:
msg=input()
c.send(msg.encode())
使用线程实现多个端口的打开(实现多人信息发送接收)
import socket
import threading
ss=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ss.bind(("0.0.0.0",9999))
ss.listen(10)
msg=None
lock=threading.Lock()
con=threading.Condition(lock)
def server_recv(c,a):
global msg
while True:
str1=c.recv(1024)
con.acquire()
msg=str(a)+str1.decode()
con.notify_all()
con.release()
def server_send(c,a):
global msg
while True:
con.acquire()
con.wait()
con.release()
c.send(msg.encode())
while True:
c,a=ss.accept()
threading._start_new_thread(server_recv,(c,a))
threading._start_new_thread(server_send,(c,a))
要解决那些问题
tcp udp http ftp pop3 smtp
tcp:可靠,有状态,长连接的协议
主叫方 被叫方
服务套接字
客户套接字 ==客户套接字
创建服务套接字
import threading
import socket
# 创建服务套接字
ss=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print("建立服务套接字")
#服务套接字绑定主机绑定端口号
ss.bind(("localhost",9999))
print("绑定端口和主机" )
ss.listen(5)
#接收客户套接字请求
print("开始等待客户的请求")
c=ss.accept() #线程阻塞
print("某个客户连接到我了")
def myrevc(c):
while True:
msg=c.recv(1024)
print(msg.decode())
threading._start_new_thread(myrevc,(c[0],))
while True:
msg=input()
c[0].send(msg.encode())
创建客户套接字
import socket
import threading
#创建客户套接字
c=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#输入要呼叫的服务套接字的ip 和端口
c.connect(("localhost",9999))
#创建一个用来接收信息的函数
def myrevc(c):
while True:
msg=c.recv(1024)
print(msg.decode())
threading._start_new_thread(myrevc,(c,))
#用来发送信息
while True:
msg=input()
c.send(msg.encode())
使用线程实现多个端口的打开(实现多人信息发送接收)
import socket
import threading
ss=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ss.bind(("0.0.0.0",9999))
ss.listen(10)
msg=None
lock=threading.Lock()
con=threading.Condition(lock)
def server_recv(c,a):
global msg
while True:
str1=c.recv(1024)
con.acquire()
msg=str(a)+str1.decode()
con.notify_all()
con.release()
def server_send(c,a):
global msg
while True:
con.acquire()
con.wait()
con.release()
c.send(msg.encode())
while True:
c,a=ss.accept()
threading._start_new_thread(server_recv,(c,a))
threading._start_new_thread(server_send,(c,a))
阅读全文
0 0
- Python网络编程例子
- Python的网络编程
- python网络编程
- Python网络编程
- Python的网络编程
- python_网络编程
- Python PycURL 网络编程
- python中的网络编程
- Python网络编程基础
- python网络编程
- python 网络编程
- Python网络编程基础
- python网络编程解疑
- python 网络编程1
- python网络编程
- python 网络编程学习
- [Python] 网络编程(Socket)
- python 网络编程
- 互联网基础术语
- interview20171103
- Nginx+Tomcat负载均衡——Tomcat集群 Session复制
- 疯狂Activiti6连载(11)Activiti6的流程控制逻辑
- C++ STL 容器与算法概述
- python网络编程
- 聊聊gcc参数中的-I, -L和-l
- 203-Remove Linked List Elements
- linux内存源码分析
- 拍照,选择照片功能
- 两个单链表生成相加链表
- 人生不如意事十之八九,90% 是因为没女朋友
- Android调用本机地图APP
- c++实现求哈夫曼数及其对应的哈夫曼编码和译妈