标签:
计算机为了联网,就必须规定通信协议。为了把全世界的所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议簇(Internet Protocol Suite)就是通用协议标准。Internet是由inter和net两个单词组合起来的,原意就是连接“网络”的网络,有了Internet,任何私有网络,只要支持这个协议,就可以联入互联网。因为互联网协议包含了上百种协议标准,但是最重要的两个协议是TCP和IP协议,所以,大家把互联网的协议简称TCP/IP协议。
TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据。相对TCP,UDP则是面向无连接的协议。tcp举例。
服务器端。
#!/usr/bin/env python # coding=utf-8 import socket,time import threading s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) #AF_INET
指定使用IPv4协议,如果要用IPv6,就指定为AF_INET6
。SOCK_STREAM
指定使用面向流的TCP协议。 s.bind((‘127.0.0.1‘,9000)) #参数是一个tuple。绑定端口并监听来自其他客户端的连接。小于1024
的端口号必须要有管理员权限才能绑定。 s.listen(5) print ‘waiting...‘ def tcplink(sock, addr): print ‘Accept new connection from %s:%s...‘ % addr #addr是一个tuple。 print addr sock.send(‘Welcome!‘) while True: data = sock.recv(1024) #最多接收1024字节。 time.sleep(1) if data == ‘exit‘ or not data: break sock.send(‘Hello, %s!‘ % data) sock.close() print ‘Connection from %s:%s closed.‘ % addr while True: sock, addr = s.accept() t = threading.Thread(target=tcplink, args=(sock, addr)) #为了在处理过程连接的过程中能够接受其他客户端的连接,每个连接都创建一个线程来处理。 t.start() #启动一个线程就是把一个函数传入并创建Thread
实例,然后调用start()
开始执行。
客户端
#!/usr/bin/env python # coding=utf-8 import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((‘127.0.0.1‘, 9000)) print s.recv(1024) s.send(‘linux‘) print s.recv(1024) s.send(‘exit‘) s.close()
客户端要简单一点,连接到服务器,接收和发送消息。
标签:
原文地址:http://www.cnblogs.com/yeming/p/4790159.html