套接字的定义与使用

套接字:

     是可以实现不同主机进程通信的一种方式

套接字使用流程

    1、创建一个套接字

    2、使用套接字收发数据

    3、关闭套接字

   python代码演练:

      创建udp发送数据套接字

import socket

def main():
    """
    创建一个套接字
    :return:
    """
    # 创建一个套接字
    udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    # 绑定端口
    udp_socket.bind(("192.168.0.100",6677))
    # 使用套接字收发数据
    udp_socket.sendto(b"hahaha",("192.168.0.100",7788))
    # 关闭套接字
    udp_socket.close()

if __name__ == '__main__':
    main()

 创建udp接收数据套接字

# coding=UTF-8
import socket
def main():
    """
    # 创建一个套接字接收数据
    :return:
    """
    # 创建一个套接字
    receive_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    # 绑定端口 发数据套接字可以不绑定端口,接收数据套接字要绑定端口
    localaddr = ("",7788)
    receive_socket.bind(localaddr)
    # 接收数据
    recv_data = receive_socket.recvfrom(1024)
    print(recv_data)
    recv_msg = recv_data[0]
    print(recv_msg.decode("UTF-8"))
    # 关闭套接字
    receive_socket.close()

if __name__ == '__main__':
    main()

tcp服务器demo

import socket

def main():
    # 创建一个套接字
    tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 绑定IP
    tcp_server_socket.bind(("127.0.0.1",8080))
    # 让默认的套接字由主动变成被动
    tcp_server_socket.listen(128)
    # 等待客户端的连接 返回值是一个元组
    # client_socket是为连接的客户端新创的一个套接字
    # client_addr是客户端连接的地址,格式为元组,包括IP与port
    client_socket,client_addr = tcp_server_socket.accept()
    # 接收客户端发送来的数据
    client_msg = client_socket.recv(1024)
    # 发送数据
    client_socket.send("msg".encode("utf-8"),)
    # 关闭客户端
    tcp_server_socket.close()

if __name__ == '__main__':
    main()

tcp客户端demo

import  socket


def main():
    # 创建一个套接字
    tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 链接一个服务器
    tcp_socket.connect(("127.0.0.1",8080))
    # 接收数据,
    tcp_socket.recv(1024)
    # 发送数据
    tcp_socket.send("msg")
    # 关闭套接字
    tcp_socket.close()

if __name__ == '__main__':
    main() 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值