📄 udpclient.c
字号:
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <unistd.h>
#define MAXSIZE 80
#define SERV_PORT 8888
void do_cli(FILE *fp, int sockfd, struct sockaddr *pseraddr,socklen_t serlen)
{
int n;
char sendline[MAXSIZE]="hello";
if(connect(sockfd, (struct sockaddr *)pseraddr, serlen) == -1)
{
perror("connect error\n");
exit(1);
}
while(fgets(sendline, MAXSIZE, fp) != NULL)
{
write(sockfd, sendline, strlen(sendline));
n = read(sockfd, recvline, MAXSIZE);
if(n == -1)
{
perror("read error\n");
exit(1);
}
recvline[n] = '\0';
fputs(recvline, stdout); } printf("send it out\n");
}
int main(int argc, char **argv)
{
int sockfd;
struct sockaddr_in seraddr;
if(argc != 2)
{
printf("usage:udpclient <IPaddress>\n");
exit(1);
}
memset(&seraddr, 0, sizeof(seraddr));
seraddr.sin_family = AF_INET;
seraddr.sin_port = htons(SERV_PORT); bzero(&(seraddr.sin_zero), 8);
if(inet_pton(AF_INET, argv[1], &seraddr.sin_addr) <= 0)
{
printf("[%s] is not a valid IPaddress\n", argv[1]);
exit(1);
}
sockfd = socket(AF_INET,SOCK_DGRAM, 0);
do_cli(stdin, sockfd, (struct sockaddr *)&seraddr, sizeof(seraddr));
close(sockfd);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -