[Python]网络编程--socket入门

介绍:

#coding=utf-8
'''
笔记:
套接字:套接字起源于20世纪79年代的加利福尼亚大学伯克利分校版本的Unix,就是我们常说的BSDunix。
有的时候也叫“BSD套接字”。开始的时候被设计为一台主机应用间的通信,也就是进程间通信,也叫IPC。
一般分为2种,基于文件型的和基于网络型的。
AF:地址家族
PF:协议家族
合法端口号是0 到65535 


'''
#创建一个TCP/IP套接字 socket(socket_family, socket_type, protocol=0) 
#socket_family socket的类型  socket_type哪种方式传输tcp or udp 
import socket
tcpSocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#创建一个UDP/IP套接字
udpSocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

'''
函数                    描述
服务器端套接字函数 
s.bind()            绑定地址(主机,端口号对)到套接字
s.listen()          开始 TCP 监听
s.accept()          被动接受 TCP 客户的连接,(阻塞式)等待连接的到来
客户端套接字函数
s.connect()         主动初始化 TCP 服务器连接
s.connect_ex()      connect()函数的扩展版本,出错时返回出错码,而不是抛异常
公共用途的套接字函数
s.recv()            接收 TCP 数据
s.send()            发送 TCP 数据
s.sendall()         完整发送 TCP 数据
s.recvfrom()        接收 UDP 数据
s.sendto()          发送 UDP 数据
s.getpeername()     连接到当前套接字的远端的地址
s.getsockname()     当前套接字的地址
s.getsockopt()      返回指定套接字的参数
s.setsockopt()      设置指定套接字的参数
s.close()           关 闭套接字
Blocking-Oriented Socket Methods
s.setblocking()     设置套接字的阻塞与非阻塞模式
s.settimeout()      设置阻塞套接字操作的超时时间
s.gettimeout()      得到阻塞套接字操作的超时时间
面向文件的套接字的函数 
s.fileno()          套接字的文件描述符
s.makefile()        创建一个与该套接字关连的文件
'''

TCP服务端

#coding:utf-8
#最简单的一个案例 一个server和一个client 的Tcp服务
#客户端:
'''
客户端的运行流程:
创建socket
绑定端口
开始循环监听
接受客户端连接
循环通信
关闭客户端连接
关闭socket

'''
#服务器端接受客户端的字符,并说一句话 
import socket
from time import ctime 

#定义几个参数,例如地址端口号等
HOST = ''
PORT = 8808  #这里是整形
BUFFFERSIZE = 1024
ADDR =(HOST,PORT)
#print ADDR

#创建并绑定
tcpSockSer = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcpSockSer.bind(ADDR)
tcpSockSer.listen(10) 

while True:
    print 'The TCP Server is starting....',ctime()
    tcpSockClt,addr=tcpSockSer.accept()
    print 'The client is ',addr ,'----',ctime()
    print tcpSockClt.recv(BUFFFERSIZE) 
    
    tcpSockClt.send("Server: I am a Server !")
    tcpSockClt.close()
tcpSockSer.close()


TCP客户端

#coding:utf-8
#python2.7
'''
客户端的逻辑
创建socket连接服务器
循环通信
收发消息
关闭socket

'''
import socket
from time import ctime

HOST = '127.0.0.1'
PORT = 8808
BUFFERSIZE = 1024
ADDR = (HOST,PORT)

tcpSockClt=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcpSockClt.connect(ADDR)

while True:
    print 'client is ready ...'
    tcpSockClt.send('Client: I am a Client!')
    data=tcpSockClt.recv(BUFFERSIZE)
    if not data:
        break 
    print data 
tcpSockClt.close()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值