📄 testrecv_tcp.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <time.h>
#include <signal.h>
#include <string.h>
int main(argc,argv)
int argc;
char **argv;
{
int iRecvSock,iSock;
struct sockaddr_in strRcv;
char recvHead[10];
char recvData[10240],sendData[10240];
int iAddrLength;
if(argc!=2) {
fprintf(stderr,"Usage : testrecv <port>\n");
exit(1);
}
iAddrLength=sizeof(struct sockaddr_in);
memset(&strRcv,'\0',sizeof(struct sockaddr_in));
strRcv.sin_family=PF_INET;
strRcv.sin_port=htons(atoi(argv[1]));
strRcv.sin_addr.s_addr=INADDR_ANY;
memset(recvData,'\0',sizeof(recvData));
memset(sendData,'\0',sizeof(sendData));
if ((iRecvSock = socket (AF_INET, SOCK_STREAM, 0))==-1) {
printf("无法创建Socket \n");
perror("socket");
exit(0);
}
if (bind(iRecvSock, (struct sockaddr *)&strRcv, sizeof(struct sockaddr_in)) == -1) {
printf("无法绑定地址\n");
perror("bind");
close(iRecvSock);
exit (0);
}
if (listen(iRecvSock, 10) == -1) {
printf("无法监听Socket \n");
perror("listen");
close(iRecvSock);
exit (0);
} else{
printf("Listening...\n");
}
printf("first ------------- first\n");
while(1){
printf("22222222\n");
if((iSock=accept(iRecvSock,(struct sockaddr *)&strRcv,&iAddrLength))==-1){
printf("无法接受连接 \n");
perror("accept");
close(iRecvSock);
exit (0);
}
printf("已接受连接: %s\n", inet_ntoa(strRcv.sin_addr));
if(recv(iSock,recvHead,sizeof(recvHead),0)==-1){
printf("接收消息失败\n");
perror("recv");
close(iSock);
exit (0);
}else{
printf("333333333344\n");
printf("recvHead=%s\n",recvHead);
}
memset(recvData,'\0',sizeof(recvData));
if(recv(iSock,recvData,sizeof(recvData),0)==-1){
printf("接收消息失败\n");
perror("recv");
close(iSock);
exit (0);
}else{
printf("333333333344\n");
printf("recvData=%s\n",recvData);
}
}
close(iSock);
close(iRecvSock);
exit(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -