📄 sever.c
字号:
#include "a.h"
int main()
{
int sockfd;
#ifdef TCP
int new_fd;
#endif
struct sockaddr_in addr,client_addr;
int addr_len = sizeof(struct sockaddr);
int numbytes;
#ifdef LINUX
long int buf[MAXBUFLEN];
#else
DWORD buf[MAXBUFLEN];
init_socket(2,2);
#endif
#ifdef TCP
sockfd = creat_socket(AF_INET, SOCK_STREAM, 0);
printf("TCP\n");
#else
sockfd = creat_socket(AF_INET, SOCK_DGRAM, 0);
printf("UDP\n");
#endif
memset(&addr,0,sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(SEVERPORT);
#ifdef LINUX
addr.sin_addr.s_addr = inet_addr("199.0.0.91");
#else
addr.sin_addr.s_addr = inet_addr("199.0.0.134");
#endif
memset(addr.sin_zero,0,sizeof(addr.sin_zero));
printf("sever ip=%s\n", inet_ntoa(addr.sin_addr));
bind_socket(sockfd, &addr, addr_len);
#ifdef TCP
listen_connect(sockfd);
new_fd = accept_connect(sockfd, &client_addr, &addr_len);
#endif
while (1)
{
printf("begin!\n");
memset(buf, 0, MAXBUFLEN);
#ifdef TCP
numbytes = recv(new_fd, buf, MAXBUFLEN, 0);
#else
numbytes = recvfrom(sockfd, buf, MAXBUFLEN, 0, (struct sockaddr*)&client_addr, &addr_len);
#endif
printf("recvnum=%d\n",numbytes);
if (numbytes == -1)
{
perror("recv");
continue;
}
printf("receive from %s\n", inet_ntoa(client_addr.sin_addr));
printf("packet is %d bytes\n", numbytes);
#ifdef TCP
send(new_fd,buf, numbytes, 0);
#else
sendto(sockfd, buf, numbytes, 0, (struct sockaddr*)&client_addr, addr_len);
#endif
}
close_socket(sockfd);
#ifdef TCP
close_socket(new_fd);
#endif
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -