参考了这篇博文
socket的基本知识
http://blog.csdn.net/hguisu/article/details/7445768/
一个最简单的CS程序
上代码:
client.c
/* File Name: client.c*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define MAXLINE 4096
int main(int argc, char** argv)
{
int sockfd, n, rec_len;
char recvline[4096], sendline[4096];
char buf[MAXLINE];
struct sockaddr_in servaddr;
if( argc < 3) {
printf("usage: ./client <ipaddress> <port>\n");
exit(0);
}
if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
printf("create socket error: %s(errno: %d)\n",
strerror(errno), errno);
exit(0);
}
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(atoi(argv[2]));
if(inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0) {
printf("inet_pton error for %s\n", argv[1]);
exit(0);
}
if(connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr))
< 0) {
printf("connect error: %s(errno: %d)\n", strerror(errno), errno);
exit(0);
}
printf("send msg to server: \n");
while(fgets(sendline, MAXLINE, stdin) != NULL) {
if(send(sockfd, sendline, strlen(sendline), 0) < 0) {
printf("send msg error: %s(errno: %d)\n",
strerror(errno), errno);
exit(0);
}
if((rec_len = recv(sockfd, buf, MAXLINE, 0)) == -1) {
perror("rec error");
exit(1);
}
if(rec_len