102 基于UDP协议的socket套接字

目录

  • 一、基于UDP协议的socket套接字编程

    • 1.1 用法
    • 1.2 udp协议的特点
    • 1.3 实例

一、基于UDP协议的socket套接字编程

socket套接字包括使用TCP协议和UDP协议进行通讯

1.1 用法

socket指定使用UDP通讯协议server = socket.socket(socket.AF_INET, type=socket.SOCK_DGRAM)

发送udp数据server.sendto(发送数据)

接收udp数据data, addr = server.recvfrom(1024)

1.2 udp协议的特点

  1. 可以发空数据(数据报协议,有头)
  2. 不需要建连接
  3. 不会粘包
  4. 不可靠(客户端,服务器谁断开都不受影响)

1.3 实例

服务端

HOST = "127.0.0.1"
POST = 8080

if __name__ == '__main__':
    # udp服务器
    server = socket.socket(socket.AF_INET, type=socket.SOCK_DGRAM)  # 指定udp协议进行通讯。
    server.bind((HOST,POST))
    while 1:
        data, addr = server.recvfrom(1024)
        print(data.upper().decode("utf8"))
        server.sendto(data.upper(),addr)

客户端

HOST = "127.0.0.1"
POST = 8080

if __name__ == '__main__':
    # udp客户端
    client = socket.socket(socket.AF_INET, type=socket.SOCK_DGRAM) # 指定udp协议进行通讯。
    while 1:
        msg = input("请输入>>:")
        # 直接发
        client.sendto(msg.encode("utf8"),(HOST,POST))
        data=client.recvfrom(1024)[0]   # 是个元祖
        print(data.decode("utf8"))

原文地址:https://www.cnblogs.com/xichenHome/p/11508250.html

时间: 09-11

102 基于UDP协议的socket套接字的相关文章

网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服务器进程B1同时为客户进程A1.A2和B2提供服务. Socket概述 ①   所谓Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过“套接字”向网络发出请求或者应答网络请求. ②   Socket是连接运行在网络上的两个程序间的双向通信的端点. ③  

基于UDP协议之——socket编程

一. socket API 前面一篇<基于TCP协议之--socket编程>http://2627lounuo.blog.51cto.com/10696599/1775559已经花了大量的篇幅讲述了socket和使用基本的socket API所需要注意的问题,这里就不再赘述了.下面主要谈论的是UDP和TCP在socket编程中的不同之处: 1. 创建sock 和TCP面向连接的可靠的字节流传输服务不同的是,UDP是无连接的不可靠的数据报传输服务:虽然有所不同,但同样在进程间通信的时候需要提供出

基于UDP协议的socket通信

UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据. 具体实现: udp_server.c   1 #include<stdio.h>   2 #include<stdlib.h>   3 #include<errno.h>   4 #include<sys/types.h>   5 #include<sys/socket.h>   6 #include<unistd.h>   7 #include<

基于UDP协议的socket编程示例

客户端 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; public class LoginClient { public static void main(Str

Socket套接字

知识点: l   认识sockets(套接字) l   加载套接字库 l   绑定端口 l   监听 l   收发信息 l   关闭套接字 一.认识sockets(套接字) Sockets是一个Windows网络编程的规范,sockets(套接字)编程有三种: 1.流式套接字(SOCK_STREAM) 2.数据报套接字(SOCK_DGRAM) 3.原始套接字(SOCK_RAW): 基于TCP的socket编程是采用的流式套接字(SOCK_STREAM). 基于UDP采用的数据报套接字(SOCK_

linux网络环境下socket套接字编程(UDP文件传输)

今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中,如果我们使用TCP传输,会造成传输速度较慢的情况,所以我们在进行文件传输的过程中,最好要使用UDP传输. 在其中,我们需要写两个程序,一个客户端,一个服务端,在一个终端中,先运行服务端,在运行客户端,在服务端和客户端都输入IP地址和端口号,注意服务端和客户端的端口号要相同,然后选择功能,在linux

linux网络编程-(socket套接字编程UDP传输)

今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中,如果我们使用TCP传输,会造成传输速度较慢的情况,所以我们在进行文件传输的过程中,最好要使用UDP传输. 在其中,我们需要写两个程序,一个客户端,一个服务端,在一个终端中,先运行服务端,在运行客户端,在服务端和客户端都输入IP地址和端口号,注意服务端和客户端的端口号要相同,然后选择功能,在linux

Socket(套接字) IP TCP UDP HTTP

Socket(套接字) (转)什么是套接字(Socket)? 应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题.多个TCP连接或多个应用程序进程可能需要 通过同一个TCP协议端口传输数据.为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字 (Socket)(socket是操作系统提供出来的接口)的接口,区分不同应用程序进程间的网络通信和连接.生成套接字,主要有3个参数:通信的目的IP地址.使用的传输 层

JAVA基础知识之网络编程——-基于UDP协议的通信例子

UDP是一种不可靠的协议,它在通信两端各建立一个socket,这两个socket不会建立持久的通信连接,只会单方面向对方发送数据,不检查发送结果. java中基于UDP协议的通信使用DatagramSocket类的receive和send方法即可,但消息需要通过一个特定的类封装(DatagramPacket) 下面是一个基于UDP协议的通信的例子, 服务器端, 1 package udp; 2 3 import java.io.IOException; 4 import java.net.Dat

socket 套接字

套接字基础 c/s架构 client ---------internet------------serverserver端: 力求一直提供服务 要绑定一个唯一的地址,让客户端能够明确的找到 客户端/服务器基于网络进行通信,所以要遵询互联网协议ios五层协议:图 TCP/IP协议族包括传输层.网络层.链路层tcp协议传输数据: 以太网头 + IP头 + tcp头 + 数据udp协议传输数据: 以太网头 + IP头 + udp头 + 数据 socket是什么:定义:源IP地址和目的IP地址以及源端口