What is Socket

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务
 
上面是不是很乱?但是概念一定要了解
现在是初学,我把Socket理解为一个电话拨通电话,接听电话!通信的一个概念!
Scket在写的时候要记住有发就有收,收发必相等!

第一个Socket代码

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import socket
#创建socket对象
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#设置监听的IP与端口
sk.bind(('127.0.0.1',6666))
#设置client最大等待连接数
sk.listen(5)

while True: #循环
    print 'waiting client connection .......'
    #只有accept & recv 会阻塞,这里accept阻塞,直到有client连接过来
    #connection代表客户端对象,address是客户端的IP
    connection,address = sk.accept()
    #等待接收客户端信息
    client_messge = connection.recv(1024)
    #打印客户端信息
    print 'client send messge',client_messge
    #发送回执信息给client 收发必须相同
    connection.sendall('hello Client this server')
    #关闭和client的连接
    connection.close()
socket_server
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import socket
#创建socket对象
ck = socket.socket()
#通过IP&端口连接server
ck.connect(('127.0.0.1',6666))
#发送消息给服务端
ck.sendall('hello server this is  Clinet')
#接收服务端的消息并打印
server_answer = ck.recv(1024)
print server_answer
#关闭连接
ck.close()
socket_client

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-23
  • 2021-10-27
  • 2022-02-28
  • 2021-11-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-21
相关资源
相似解决方案