码迷,mamicode.com
首页 > 其他好文 > 详细

socket

时间:2015-09-08 00:15:07      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

      计算机为了联网,就必须规定通信协议。为了把全世界的所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议簇(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_INET6SOCK_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()

 客户端要简单一点,连接到服务器,接收和发送消息。

socket

标签:

原文地址:http://www.cnblogs.com/yeming/p/4790159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!