标签:
服务器端:
#include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <unistd.h> #include <netinet/in.h> #define SERVPORT 3333 #define BACKLOG 10 #define MAX_CONNECTED_NO 10 #define MAXDATASIZE 5 int main() { struct sockaddr_in server_sockaddr, client_sockaddr; int sin_size, recvbytes; int sockfd, client_fd; char buf[MAXDATASIZE]; if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } printf("socket success! sockfd = %d\n", sockfd); server_sockaddr.sin_family = AF_INET; server_sockaddr.sin_port = htons(SERVPORT); server_sockaddr.sin_addr.s_addr = INADDR_ANY; bzero(&(server_sockaddr.sin_zero), 8); if(bind(sockfd, (struct sockaddr *)&server_sockaddr, sizeof(struct sockaddr)) == -1) { perror("bind"); exit(1); } printf("bind success!\n"); if(listen(sockfd, BACKLOG) == -1) { perror("listen"); exit(1); } printf("listening!\n"); if((client_fd = accept(sockfd, (struct sockaddr *)&client_sockaddr, &sin_size)) == -1) { perror("accept"); exit(1); } if((recvbytes = recv(client_fd, buf, MAXDATASIZE, 0)) == -1) { perror("recv"); exit(1); } //cout << "received a connection: " << buf << endl; close(sockfd); return 0; }
#include <stdio.h> #include <errno.h> #include <string.h> #include <netdb.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #define SERVPORT 3333 #define MAXDATASIZE 100 int main(int argc, char *argv[]) { int sockfd, sendbytes; char buf[MAXDATASIZE]; struct hostent *host; struct sockaddr_in serv_addr; if(argv < 2) { fprintf(stderr, "Please enter the server is hostname!\n"); exit(1); } if((host = gethostbyname(argv[1])) == NULL) { perror("gethostbyname"); exit(1); } if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(SERVPORT); serv_addr.sin_addr = *((struct in_addr *)host->h_addr); bzero(&(serv_addr.sin_zero), 8); if(connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)) == -1) { perror("connect"); exit(1); } if((sendbytes = send(sockfd, "hello", 5, 0)) == -1) { perror("send"); exit(1); } char revcBuf[100]; recv(sockfd, revcBuf, 100, 0); close(sockfd); return 0; }
标签:
原文地址:http://blog.csdn.net/u010470972/article/details/46547195