遍匈 / C囂冱痕方返過 / 噴、俊笥侃尖痕方 /

C囂冱sendto()痕方?将socket勧僕方象

屢購痕方?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() 喘栖繍方象喇峺協議socket 勧公斤圭麼字. 歌方s 葎厮秀挫銭?議socket, 泌惚旋喘UDP亅咏夸音俶将狛銭?荷恬. 歌方msg 峺?圀銭?議方象坪否, 歌方flags 匯違譜0, 峋聾宙峰萩歌深send(). 歌方to 喘栖峺協圀勧僕議利大仇峽, 潤更sockaddr 萩歌深bind(). 歌方tolen 葎sockaddr 議潤惚海業.

卦指峙?撹孔夸卦指糞縞勧僕竃肇議忖憲方, 払移卦指?1, 危列圻咀贋噐errno 嶄.

危列旗鷹?
1、EBADF 歌方s 掲隈議socket 侃尖旗鷹.
2、EFAULT 歌方嶄嗤匯峺寞峺?涙隈贋函議坪贋腎寂.
3、WNOTSOCK canshu s 葎匯猟周宙峰簡, 掲socket.
4、EINTR 瓜佚催侭嶄僅.
5、EAGAIN 緩強恬氏綜序殻怦僅, 徽歌方s 議soket 葎温仁怦僅議.
6、ENOBUFS 狼由議産喝坪贋音怎.
7、EINVAL 勧公狼由距喘議歌方音屎鳩.


袈箭
#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);
}
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);
}
}
峇佩?萩歌深recvfrom()

AltStyle によって変換されたページ (->オリジナル) /