WinSocket中的SendTo 和 ReceiveFrom函数 疑问??
SendTo函数中的参数有一个地址和端口,请问这个端口是:将数据从本地的这个端口号发送出去给远程机,还是将数据发送到远程机的这个端口号?同样ReceiveFrom函数是从...
SendTo函数中的参数有一个地址和端口,请问这个端口是:将数据从本地的这个端口号发送出去给远程机,还是将数据发送到远程机的这个端口号?
同样ReceiveFrom函数是从本地的这个端口号读取数据,还是从读取远程机的这个端口号中的数据??
本地和远程的端口号必须要一样才能建立连接?..望高手解答?
谢谢各位的解答。
zhenshui007:
我也是这么认为的,但是Receiveform函数的是这样申明的
ReceiveFrom(data,length,address,port);
调用的时候并没有给port和address赋值,而是在DSocket::OnReceive()被动调用的,这里是在接受数据包时已经将远程主机地址和远程主机的SendTo函数中的port参数传递给了ReceiveFrom函数中的address,port两个参数,这样还保证了两个主机使用的port是一样的。估计是装了原型吧?? 展开
同样ReceiveFrom函数是从本地的这个端口号读取数据,还是从读取远程机的这个端口号中的数据??
本地和远程的端口号必须要一样才能建立连接?..望高手解答?
谢谢各位的解答。
zhenshui007:
我也是这么认为的,但是Receiveform函数的是这样申明的
ReceiveFrom(data,length,address,port);
调用的时候并没有给port和address赋值,而是在DSocket::OnReceive()被动调用的,这里是在接受数据包时已经将远程主机地址和远程主机的SendTo函数中的port参数传递给了ReceiveFrom函数中的address,port两个参数,这样还保证了两个主机使用的port是一样的。估计是装了原型吧?? 展开
4个回答
展开全部
sendto() 简述:
向一指定目的地发送数据。
#include <winsock.h>
int PASCAL FAR sendto( SOCKET s, const char FAR* buf, int len, int flags,
const struct sockaddr FAR* to, int tolen);
s:一个标识套接口的描述字。//本地绑定端口
buf:包含待发送数据的缓冲区。
len:buf缓冲区中数据的长度。
flags:调用方式标志位。
to:(可选)指针,指向目的套接口的地址。//目的
tolen:to所指地址的长度。
int PASCAL FAR recvfrom( SOCKET s, char FAR* buf, int len, int flags,
struct sockaddr FAR* from, int FAR* fromlen);
s:标识一个已连接套接口的描述字。//本地绑定端口
buf:接收数据缓冲区。
len:缓冲区长度。
flags:调用操作方式。
from:(可选)指针,指向装有源地址的缓冲区。
fromlen:(可选)指针,指向from缓冲区长度值。
向一指定目的地发送数据。
#include <winsock.h>
int PASCAL FAR sendto( SOCKET s, const char FAR* buf, int len, int flags,
const struct sockaddr FAR* to, int tolen);
s:一个标识套接口的描述字。//本地绑定端口
buf:包含待发送数据的缓冲区。
len:buf缓冲区中数据的长度。
flags:调用方式标志位。
to:(可选)指针,指向目的套接口的地址。//目的
tolen:to所指地址的长度。
int PASCAL FAR recvfrom( SOCKET s, char FAR* buf, int len, int flags,
struct sockaddr FAR* from, int FAR* fromlen);
s:标识一个已连接套接口的描述字。//本地绑定端口
buf:接收数据缓冲区。
len:缓冲区长度。
flags:调用操作方式。
from:(可选)指针,指向装有源地址的缓冲区。
fromlen:(可选)指针,指向from缓冲区长度值。
展开全部
不是吧,连接的远程主机只需要本地连接时指定的端口号和ip地址和远程主机的一致就可以了,对于本地ip和端口号没有要求的..两个函数的地址和端口都是远程主机的,个人见解..
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这两个函数是UDP型的SOCKET用的,地址和端口sendto的就是你放发送到的地址和端口,receivefrom就是你要从哪接受的地址和端口
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SendTO 发送出去的
Receiveform 是接收到的
是的
Receiveform 是接收到的
是的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询