网络编程之socket(TCP,UDP)

socket层

网络编程之socket(TCP,UDP)

tcp协议和udp协议

网络编程之socket(TCP,UDP)

1)Socket服务器编程

主要包括下面的几步:

1.打开socket

2.绑定到一个地址和端口

3.侦听进来的连接

4.接受连接

5.读写数据

(2)Socket客户端编程

主要包括下面的几步:

1.打开socket

2.连接到一个地址和端口

3.读写数据

3. Socket类型

Socket从类型上分,可以有以下几种:

socket类型 适用范围 说明

socket.AF_UNIX 只能够用于单一的Unix系统进程间通信 不能在不同主机之间通信

socket.AF_INET 服务器之间网络通信 目前常用的就是这种

socket.AF_INET6 IPv6 由于IPv6未推广,也少用

4.Socket函数

网络编程之socket(TCP,UDP)

网络编程之socket(TCP,UDP)

网络编程之socket(TCP,UDP)

网络编程之socket(TCP,UDP)

要记住常用的就可以,即通常会在Server端和Client端中编程会用到的,可以见下面的例子。

5.Socket例子--TCP

    ###Server端:
import socket
sk = socket.socket()
sk.bind(('127.0.0.1',8898)) #把地址绑定到套接字
sk.listen() #监听链接
conn,addr = sk.accept() #接受客户端链接
ret = conn.recv(1024) #接收客户端信息
print(ret) #打印客户端信息
conn.send(b'hi') #向客户端发送信息
conn.close() #关闭客户端套接字
sk.close() #关闭服务器套接字(可选)
     ###Client端
import socket
sk = socket.socket() # 创建客户套接字
sk.connect(('127.0.0.1',8898)) # 尝试连接服务器
sk.send(b'hello!')
ret = sk.recv(1024) # 对话(发送/接收)
print(ret)
sk.close() # 关闭客户套接字

5.Socket例子--UDP

    ###Server端:
import socket
udp_sk = socket.socket(type=socket.SOCK_DGRAM) #创建一个服务器的套接字
udp_sk.bind(('127.0.0.1',9000)) #绑定服务器套接字
msg,addr = udp_sk.recvfrom(1024)
print(msg)
udp_sk.sendto(b'hi',addr) # 对话(接收与发送)
udp_sk.close() # 关闭服务器套接字
     ###Client端
import socket
ip_port=('127.0.0.1',9000)
udp_sk=socket.socket(type=socket.SOCK_DGRAM)
udp_sk.sendto(b'hello',ip_port)
back_msg,addr=udp_sk.recvfrom(1024)
print(back_msg.decode('utf-8'),addr)
上一篇:JavaScript(三、DOM文档对象模型)


下一篇:如何在Eclipse中查看Android源码或者第三方组件包源码