#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
int main(void)
{
int ssd, csd;
struct sockaddr_in s_addr, c_addr;
socklen_t s_addr_len, c_addr_len;
char buffer[256];
int i;
if (-1 == (ssd = socket(PF_INET, SOCK_STREAM, 0))) {
perror("socket"); return -1; }
s_addr.sin_family = AF_INET;
s_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
s_addr.sin_port = htons(22334);
s_addr_len = sizeof(s_addr);
if (-1 == bind(ssd, (struct sockaddr *) &s_addr, s_addr_len)) {
perror("bind"); return -1; }
listen(ssd, 1);
printf("Wait for Connection...");
if (-1 == (csd = accept(ssd, (struct sockaddr *)&c_addr, &c_addr_len))) {
perror("accept"); return -1; }
close(ssd);
if(recv(csd, buffer, 256, 0) < 0) {
perror("recv");
return -1;
}
printf("Connected.\n");
while(1) {
printf("s1---------\n");
printf("C->S: %s\n", buffer);
printf("Server: ");
scanf("%s", buffer);
printf("s2---------\n");
// パケットを TCP で送信
if(send(csd, buffer, 256, 0) < 0) {
perror("send");
return -1;
}
printf("s3---------\n");
recv(csd, buffer, 256, 0);
}
close(csd);
return 0;
}