python网络编程学习(1)

CHAPTER 1

gethostname:获取主机名

gethostbyame(host_name):获取host_name的IP地址,其中host_name可以为网址

inet_aton(ip_addr):将IP地址转为十六进制

inet_ntoa(packed_ip_addr):将十六进制的IP地址转化为原来的格式 如127.0.0.1

getservbyport(port,protocalname):通过端口号以及协议(TCP/UDP)来确定服务,如80对应http

gettimeout():获取超时时间

settimeout(100):设置超时时间

getsocketopt(socket.SOL_SOCKET,socket.SO_SNDBUF) 获取缓冲区大小

setsocketopt(socket.SOL_SOCKET, socket.SO_SNDBUF\SO_RCVBUF, 4096)设置缓冲区大小

setblocking(0/1):0为非阻塞模式,1为阻塞模式, 注意后面要把套接字绑定到指定端口

       例如 sock.bind(('127.0.0.1',0))

setsocketopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)#允许重用套接字



SNTP客户端程序:(从网络时间服务器获取并打印当前时间)

import socket
import struct
import sys
import time

NTP_SERVER = "0.uk.pool.ntp.org"

TIME1970 = 2208988800L
def sntp_client():
    client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    data = '\x1b' + 47 * '\0'
    client.sendto(data, (NTP_SERVER, 123)) #把数据发送到NTP_SERVER
    data, address = client.recvfrom( 1024 ) #接受1024字节数据
    if data:
        print 'Response received from:', address
        t = struct.unpack( '!12I', data )[10] #!12I表示从网络中得到12个整数类型的数据
        t -= TIME1970
        print '\tTime=%s' % time.ctime(t)
if __name__ == '__main__':

    sntp_client()   

回显服务器则是利用上述的组合而成,分为一个服务器,一个客户端。客户端做的发送数据和得到response,服务器则是要允许重用,socket绑定以及监听,而后调用accept函数来输出data和address((host,port))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值