23,115
社区成员
发帖
与我相关
我的任务
分享
$ cat server.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
int main()
{
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1)
{
perror("[ERROR]");
return -1;
}
struct sockaddr_in addr;
pid_t pid;
addr.sin_family = AF_INET;
addr.sin_port = htons(9999);
addr.sin_addr.s_addr = htonl(INADDR_ANY);
if (-1 == bind(sockfd, (struct sockaddr*)& addr, sizeof(struct sockaddr_in)))
{
perror("[ERROR]");
return -1;
}
if ( -1 == listen(sockfd, 10))
{
perror("[ERROR]");
return -1;
}
struct sockaddr_in client_addr;
int len = sizeof(client_addr);
int connect_fd = accept(sockfd, (struct sockaddr*)&client_addr, &len);
if (connect_fd == -1)
{
perror("[ERROR]");
break;
}
close(connect_fd);
close(sockfd);
return 0;
}
$ cat client.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main()
{
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1)
{
perror("[ERROR]");
return -1;
}
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(9999);
inet_aton("127.0.0.1", &addr.sin_addr);
if (-1 == connect(sockfd, (struct sockaddr*)&addr, sizeof(struct sockaddr_in)))
{
perror("[ERROR]");
return -1;
}
close(sockfd);
return 0;
}
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <resolv.h>
#include <malloc.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <sys/time.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include<fcntl.h>
#define MAXBUF 256
//·þÎñÆ÷ÍšÐź¯Êý¡£
int main()
{
int sersocket;//·þÎñÆ÷ÍšÐÅsocket
int selfclisocket,selfsersocket;//œø³ÌÍšÐÅsocket
int self_port = 7779;//œø³ÌÍšÐŶ˿Ú
int ser_port = 3325;//·þÎñÆ÷ÍšÐŶ˿Ú
char * self_ip = "127.0.0.1";//œø³ÌÍšÐÅIP
char * ser_ip = "192.168.1.9";//·þÎñÆ÷IP
//puts(ip);
fd_set rfds;
char buf[MAXBUF+1];
char buff[MAXBUF+1];
int retval;
int maxfd;
int ret;
int len;
int i_size; //ÖžÏòŽæÓÐaddrµØÖ·³€¶ÈµÄÕûÐÎÊý
int check;
struct timeval tmOut;
tmOut.tv_sec = 0;
tmOut.tv_usec = 0;
struct sockaddr_in selfser_addr;
struct sockaddr_in selfcli_addr;
i_size=sizeof(struct sockaddr_in);
selfsersocket=socket(AF_INET,SOCK_STREAM,0);
if(selfsersocket == -1)
{
printf("Process socket error!\n");
return -1;
}
bzero(&selfser_addr,i_size);
selfser_addr.sin_family=AF_INET; //µØÖ·ŒÒ×å AF_INETŽú±íTCP/IPÐÒé
selfser_addr.sin_port=htons(self_port); //ŽæŽ¢¶Ë¿ÚºÅ
selfser_addr.sin_addr.s_addr=INADDR_ANY; //ŽæŽ¢IPµØÖ·
if((ret = bind(selfsersocket,(struct sockaddr*)&selfser_addr,sizeof(struct sockaddr_in))) == -1)
{
printf ("process SERVER Binding failed\n");
return -1;
}
if (listen(selfsersocket, 1) == -1) printf("process SERVER Error listening on socket.\n");
printf("process server start!\n");
if((selfclisocket=accept(selfsersocket,(struct sockaddr*)&selfcli_addr,&i_size)) == -1)
{
printf("process client disconnected!\n");
return -1;
}
else
printf("process server: got connection from %s, port %d, socket %d\n",inet_ntoa(selfcli_addr.sin_addr),ntohs(selfcli_addr.sin_port), selfclisocket);
}
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <resolv.h>
#include <malloc.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <sys/time.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include<fcntl.h>
#define MAXBUF 256
int con_ser()
{
int selfclisocket;
char * self_ip="127.0.0.1";
int read_fd,write_fd;//ÎÄŒþŸä±ú
char buf[MAXBUF+1];
char buff[MAXBUF+1];
int self_pot = 7779;
char * read_file = "../atom";
int retval;
int maxfd;
int ret;
int len;
int i_size; //ÖžÏòŽæÓÐaddrµØÖ·³€¶ÈµÄÕûÐÎÊý
int check;
fd_set rfds;
struct timeval tmOut;
tmOut.tv_sec = 0;
tmOut.tv_usec = 100;
struct sockaddr_in self_addr;
i_size=sizeof(struct sockaddr_in);
selfclisocket = socket(AF_INET,SOCK_STREAM,0);
if(selfclisocket == -1)
{
printf("get socket error!\n");
return -1;
}
else printf("socket success!\n");
bzero(&self_addr,sizeof(self_addr));
self_addr.sin_family = AF_INET;
self_addr.sin_port=htons(self_pot); //ŽæŽ¢¶Ë¿ÚºÅ
//inet_aton(self_ip,(struct in_addr *) &self_addr.sin_addr.s_addr);
self_addr.sin_addr.s_addr=INADDR_ANY;
check = connect(selfclisocket,(struct sockaddr *)&self_addr,i_size);
perror("connect");
sleep(1);
if(check == -1)
{
perror("connect process server error!\n");
return -1;
}
else printf("connect success!!\n");
read_fd = open(read_file,O_RDWR);//argv [4]Ϊ¶ÁÈ¡µÄÎÄŒþµÄ·Ÿ¶
if(read_fd == -1)
perror("open read file");
write_fd = read_fd;
}
int main(int argc ,char * argv[])
{
if (con_ser() == -1)
{
printf ("con_ser error\n");
return 0;
}
return 0;
}