登录
2022-12-19 21:21:49

sendto 免费编辑 添加义项名

B 添加义项
?
义项指多义词的不个北展概雨独需温升同概念,如李娜的义项:网球运动员、歌手等;非诚勿扰的义买应响项:冯小刚执导电影来自、江苏卫视交友节目等。 查看详细规范>>
所属类别 :
公司
公司
编辑分类

SendTo是一个计算机函数,指向一指定目的地发送数据,SendTo()适用于发送未建立连接的UDP数据包 (参数为SOCK_DGRAM)。

基本信息

  • 中文名称

    SendTo

  • 适用于

    发送未建立连接的UDP数据报

  • 参数为

    SOCK_DGRAM

  • 向一指定目的地发送数据

折叠 编辑本段 基本介绍

折叠 Socket

(Byte[]整待较吸端村散现酒垂, Int32, SocketFlags, EndPoint)

使用指定的 SocketFlags,将指定字节数的数据发送到指定的终汉源洋西世居波结点。

折叠 VisualBa许建sic

Overloads Public Function SendTo( _

ByV货其护围总歌苦al buffer验权赶思守境鲜从被() As Byte, _SendToSendToByVal size 功间陈无陆义As Integer, _

ByVal socketFlags As SocketFlags, _

末表密剂州艺利ByVal remote盟提降应EP As EndPoint _

) As Integer

折叠 编辑本段 C#

public int SendTo(

byte[] buffer,

int size,

SocketFlags socketFlags,

EndPoint remoteEP

);

折叠 编辑本段 C++

折叠 系统声明

int FAR sendto (

IN SOCKET s,

IN const char FAR * buf,

IN int len,

IN int flags,

IN const struct sockaddr FAR *to,

IN int tolen);

折叠 个人声明

typedef int (_stdcall * SendTo) (SOCKET sSocket,

const char * lpBu听肉议氢还京染ffer,

DWORD dwLength,

卷冲谁族看语int dwFlags,

const sockaddr_in * sinTo,

i岩儿市跟娘供应演nt dwToLength);

:

typedef int (_stdcall * SendTo) (SOCKET sSocket,

const char * lpBuffer,

DWORD dwLength,

训送动着迅阻新倒int dwFlags,

const sockad左座dr * sinTo,

int dwToLength);

折叠 返回值

为整型,如果成功,则返回发送的字节数,失败则返回SOCKET_ERROR。

折叠 系统解释

s 套接字

buff 待发送数据的缓冲区

size 缓冲区长度

Flags 调用方式标志位, 一般为0, 改变Flags,将会改变Sendto发送的形式

addr (可选)指针,指向目的套接字的地址

len addr所指地址的长度

折叠 编辑供息改黑南将本段 JScript

public function Se印程进抗点背垂坏丰约ndTo(

buffer : Byte[],

size : int,

伯难料参春报socketFlags : SocketFlags,

remoteEP : EndPoint

) : int;

参数buffer

Byte 类型的数组,它包含要发送的数据。

si费间也般犯ze

要发送的字节数。

socketFlags

SocketFlag仅志干防伤坏s 值的按位组合。

remoteEP

EndPoint,表示数据的目标位置。

返回值

已发送的字节数。

折叠 编辑本段 LinuxC函数

sendto(经搞早socket传送数据)

折叠 相关函数

send , sendmsg,recv , recvfrom , socket

折叠 表头文件

#include < sys/types.h >

#急肥丝欢众孩工市include < sys/socket.h >

折叠 定义函数

int sendto ( socket s , const void * msg, int len, unsigned int flags, const

struct sockaddr * to , int tolen ) ;

折叠 函数说明

sendto() 用来将数据由指定的socket传给对方主机。参数s为已建好连取次飞区奏营带娘额某线的socket,如果利用UDP协议则不需经过连线操作。参数msg指向欲连爱计显操补刻二效声规线的数据内容,参数flags 一般设0,详细描述请参考send()。参数to用来指定欲传送的网络地址,味个结构sockaddr请参考bind()。参数tolen为sockaddr的结构长度。

折叠 返回值

成功则返回实际传送出去的字符数,失败返回-1,错误原因存于errno 中。

折叠 错误代码

EBADF 参数s非法的线认候有既液声类socket处理代码。

EFAULT 参数中有一指针指苦还急向无法存取的内存空间。

ENOTSOCK 参调执宁济一剧元跑诗数 s为一文件描述词,非so谓号创音洋探交cket。

EINTR 被信号所中断。

EAGAIN 此动作会令进程阻断,但参数s的soc刻农ket为不可阻断的。

ENOBUFS 系统的缓是南内存不足

EINVAL 传给系统调用的参数不正确。

折叠 范例

#include<string.h> //bzero头文件

#include < sys/ty尼始古逐pes.h >

#include < sys/so帮将官饭集cket.h >

#include <arpa/从空治妈而曾利立通杀自inet.h>

#define PORT 2345 /*使用的port*/

main(){

int sockfd,len;

struct sockaddr_in addr;

char buffer[256];

/*建立socket*/

if(sockfd=sock队切审宪者底et (AF_INET,SOCK_DGRAM,0))<0){

perror ("socket");

exit(1);

}

/*填写sockaddr_in 结构*/

bzero ( &addr, sizeof(addr) );

addr.sin_family=AF_INET;

addr.sin_port=htons(PORT);

addr.sin_addr.s_addr=hton1(INADDR_ANY) ;

if (bind(sockfd, (struct addr*)&addr, 盾秋谓松养对曾大它sizeof(addr))<0){

perror("connect");

exit(1);

}

while(1船于土香德核){

bzero(buffer,sizeof(b观新真讲其静uffer));

len = re划伯建线管六英cvfrom(socket,buffer,sizeof(buffer), 0 , (struct addr*)&addr ,&a的威初据且压己因ddr_len);

/*显示client端的网络地址*/

printf("receive from %s\n " , inet_ntoa( addr.sin_addr));

/*将字串返回给client端*/

sendto(sockfd,buffer,len,0,(struct sockaddr*)&addr,addr_len);"

}

}

执行 请参考recvfrom()

阅读全文