/サーバーの代コード
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include < string.h>
#include <stdio.h>
#include <stdlib.h>
#define SEVER_IP "192.168.11.224"
#define PORT_NUM 1111
typedef struct sockaddr SA;
typedef 構造体 sockaddr_in SIN;
int main(int argc,char *argv[])
{ int sockfd; SIN seraddr = {0}; int ret、ret1、ret2; int res、res1、res2; int 再利用 = 1; int clifd1,clifd2; bzero(&seraddr,sizeof(SIN)); seraddr.sin_family = AF_INET;
seraddr.sin_port = htons(PORT_NUM);
seraddr.sin_addr.s_addr = inet_addr(SEVER_IP);
sockfd = ソケット(AF_INET,SOCK_STREAM,0);
if(sockfd == -1)
{ printf("socketfd エラー\r\n"); 終了(0); printf ("sockfd = %d\r\n",sockfd); setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse)); ret=bind(sockfd,(SA *)&seraddr,sizeof(SA)); if(ret == -1) { printf("失敗しました\r\n"); 終了(0); printf ("ret = %d\r\n",ret); ret1 = listen(sockfd,5); if(ret1 == 0) {
clifd2); if(clifd1 == -1) { perror("受け入れ失敗\r\n"); 終了(0); if(clifd2 == -1) { perror("受け入れ失敗\ r\n"); 終了(0); res = フォーク(); while(1) { if(res == 0) { while(1) {
char r_buf[20] = {0};
recv(clifd1,r_buf,sizeof(r_buf),0);
send(clifd2,r_buf,sizeof(r_buf),0);
}
}
else
{ while(1) { char t_buf[20] = {0}; recv(clifd2,t_buf,sizeof(t_buf),0); send(clifd1,t_buf,sizeof(t_buf),0); 閉じる ( sockfd ); 閉じる(clifd1); 閉じる(clifd2); 0を返します。=============================================== / / /客端の代価#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define SEVER_IP "192.168.11.224"
#define PORT_NUM 1111
typedef struct sockaddr SA;
typedef 構造体 sockaddr_in SIN;
int main(int argc,char *argv[])
{ int serfd; int clidfd; SIN seraddr = {0}; int ret、ret1、ret2; int rec_len = 0; bzero(&seraddr,sizeof(SIN)); serfd = ソケット(AF_INET,SOCK_STREAM, 0); if(serfd == -1) { perror("ソケットが失敗しました\r\n");
終了(0);
printf
("%d\r\n",serfd);
bzero(&seraddr,sizeof(SIN));
seraddr.sin_family = AF_INET;
seraddr.sin_port = htons(PORT_NUM);
seraddr.sin_addr.s_addr = inet_addr(SEVER_IP);
serfd = ソケット(AF_INET,SOCK_STREAM,0);
ret = connect(serfd,(SA *)&seraddr,sizeof(SA));
if(ret == -1)
{ perror("接続に失敗しました\r\n"); 終了(0); printf ("接続成功\r\n"); 整数の解像度。 レス = フォーク(); if(res == 0) { char t_buf[20] = {0}; while(1) {
scanf("%s",t_buf);
send(serfd,t_buf,sizeof(t_buf),0);
}
}
else
{ char r_buf[20] = {0}; while(1) { recv(serfd,r_buf,sizeof(r_buf),0); printf("A:%s\r\n",r_buf); 閉じる ( serfd); 0を返します。}