c语言sendto函数 send c语言

C++ 中,怎样用socket的sendto函数发送十六进制呢?相关函数c语言sendto函数:send, sendmsg, recv, recvfrom, socket
头文件:#include
sys/types.h#include sys/socket.h
定义函数:int sendto(int
s, const void * msg, int len, unsigned int flags, const struct sockaddr * to,
int tolen);
函数说明:sendto() 用来将数据由指定c语言sendto函数的socket 传给对方主机. 参数s 为已建好连线的socket, 如果利用UDP协议则不需经过连线操作. 参数msg 指向欲连线的数据内容, 参数flags 一般设0, 详细描述请参考send(). 参数to 用来指定欲传送的网络地址, 结构sockaddr 请参考bind(). 参数tolen 为sockaddr 的结果长度 。
返回值:成功则返回实际传送出去的字符数, 失败返回-1, 错误原因存于errno 中 。
范例:
#include sys/types.h
#include sys/socket.h
#include
netinet.in.h
#include arpa.inet.h
#define PORT 2345
/*使用的port */
main()
{
int sockfd, len;
struct sockaddr_in
addr;
char buffer[256];
//建立socket
if(sockfd =
socket(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 = hton1(INADDR_ANY);
if(bind(sockfd, addr, sizeof(addr))0)
{
perror("connect");
exit(1);
【c语言sendto函数 send c语言】}
while(1)
{
bezro(buffer, sizeof(buffer));
len = recvfrom(socket, buffer,
sizeof(buffer), 0, addr addr_len);
//显示client 端的网络地址
printf("receive from %s\n ", inet_ntoa(addr.sin_addr));
//将字串返回给client 端
sendto(sockfd, buffer, len, 0, addr,
addr_len);
}
}
在windows下用C语言如何实现socket网络编程,需要用到哪些头文件或者库?需要用到c语言sendto函数的头文件包含:
#include winsock2.h
#include windows.h
与Linux环境下socket编程相比c语言sendto函数,windows环境多c语言sendto函数了一个步骤:启动或者初始化winsock库
Winsock,一种标准API,一种网络编程接口 , 用于两个或多个应用程序(或进程)之间通过网络进行数据通信 。具有两个版本:
Winsock 1:
Windows CE平台支持 。
头文件:WinSock.h
库:wsock32.lib
Winsock 2:
部分平台如Windows CE貌似不支持 。通过前缀WSA可以区别于Winsock 1版本 。个别函数如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都属于Winsock 1.1规范的函数c语言sendto函数;
头文件:WinSock2.h
库:ws2_32.lib
mswsock.h用于编程扩展 , 使用时必须链接mswsock.dll
扩展资料
winsock库的加载与卸载:
加载:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);
加载成功,返回值为0 。
WORD wVersionRequested:加载的winsock版本,使用宏MAKEWORD(x, y),x表示高字节,y表示低字节 。然而使用时MAKEWORD(2, 2) 。高字节与低字节相同~~
LPWSADATA lpWSAData:WSADATA结构的指针,传入参数后,系统帮助c语言sendto函数我们填充版本信息 。有兴趣的可以看看结构体内容,不过基本用不着 。
卸载:int WSACleanup(void);比起加载,卸载的函数真是轻松愉快 。
c++中sendto函数能否向多个端口发送数据用数组存端口号?是客户端的端口?C/S模式应该是只需要设置服务端的端口号,即绑定服务端端口号 , 客户端只需要知道服务端的端口,自己不需要端口,它只是服务的请求者 。若服务的没收到客户端的请求又怎么会去响应客户端了 。如果你想要让服务端把信息发给其他客户端看看用用邮槽的广播技术行不行,那是一个客户端对多个服务端 。

推荐阅读