Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
#include<stdio.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<netdb.h>
#include<sys/socket.h>
#include<netinet/in.h>
int main()
int i;
int sockfd,newsockfd,clength;
char buffer[4096];
char buf[5000];
int i=fork()
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd==-1)
else
printf("created socket");
}
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=INADDR_ANY;
serv_addr.sin_port=htons(SERV_TCP_PORT);
printf("Start\n");
if(bind(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr))<0)
else
printf("listening\n");
printf("\n");
listen(sockfd,5);
clength=sizeof(cli_addr);
newsockfd=accept(sockfd,(struct sockaddr*)&cli_addr,&clength);
printf("Accepted\n");
printf("\n");
for(i=0;i<3;i++)
read(newsockfd,buffer,sizeof(buffer));
printf("\nenter msg\n");
scanf("%s",buf);
write(newsockfd,buf,sizeof(buf));
printf("\n%s\n%d\n%s\n",inet_ntoa(cli_addr.sin_addr),ntohs(cli_addr.sin_port),buffer);
close(sockfd);
return 0;
Output:
created socketStart
listening
Accepted
172.20.0.7
58476
Bye
Client.c
#include<stdio.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
int main()
int sockfd;
int i;
char buffer[5000];
char buf[4096];
sockfd=socket(AF_INET,SOCK_STREAM,0);
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=inet_addr("172.20.0.7");
serv_addr.sin_port=htons(SERV_TCP_PORT);
connect(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr));
printf("Client connected\n");
for(i=0;i<3;i++)
{
printf("\nenter msg from client\n");
scanf("%s",buffer);
write(sockfd,buffer,sizeof(buffer));
read(sockfd,buf,sizeof(buf));
printf("\n");
close(sockfd);
return 0;
Output:
Client connected