#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <stdio.h>
#include <netdb.h>
#include <errno.h>
#define PORT 7777
struct sockaddr_in server;
struct hostent *host;
char buffer[1024];
int main(int argc ,char *argv[])
{
if(argc !=2)
{
fprintf(stderr,"Usage :%s hostname \a\n",argv[0]);
exit(1);
}
if((host = gethostbyname(argv[1])) == NULL)
{
fprintf(stderr,"Gethostname erro");
exit(1);
}
int clientfd;
clientfd = socket(AF_INET, SOCK_STREAM, 0);
if(0 == clientfd)
{
fprintf(stderr,"create socket error %s\n",strerror(errno));
exit(1);
}
bzero(&server,sizeof(struct sockaddr_in));
server.sin_family = AF_INET;
server.sin_port = htons(PORT);
server.sin_addr = *((struct in_addr *)host->h_addr);
if(connect(clientfd,(struct sockaddr *)&server,sizeof(struct sockaddr)) == -1)
{
fprintf(stderr,"connect server error %s\n",strerror(errno));
exit(1);
}
printf("Please input char: \n");
fgets(buffer,1024,stdin);
write(clientfd,buffer,strlen(buffer));
printf("buffer is %s\n",buffer);
close(clientfd);
}
/
#include <sys/socket.h>
#include <sys/types.h>
#include <stdlib.h>
#include <stdio.h>
#include <netinet/in.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#define MAXSIZE 30
#define PORT 7777
#define MAXCONNECT 20
struct sockaddr_in host;
struct sockaddr_in client;
int main()
{
printf("welcome to my server \n");
int sockServer, new_fb;
int bytes;
char buffer[1024];
int errbind;
sockServer = socket(AF_INET,SOCK_STREAM,0);
if(-1 == sockServer )
{
perror("sockServer create failed\n");
exit(1);
}
host.sin_family = AF_INET;
host.sin_port = htons(PORT);
host.sin_addr.s_addr = INADDR_ANY;
errbind = bind(sockServer, (struct sockaddr *)&host, sizeof(struct sockaddr));
if(-1 == errbind)
{
perror("bind erro\n");
exit(1);
}
if(listen(sockServer,MAXCONNECT) == -1)
{
perror("listen erro\n");
exit(1);
}
int sin_size = sizeof(struct sockaddr_in);
printf("##########\n");
while(1)
{
printf("start accpt data\n");
new_fb = accept(sockServer, (struct sockaddr*)(&client),&sin_size);
if(-1 == new_fb )
{
fprintf(stderr,"accept failed %s\n",strerror(errno));
exit(1);
}
fprintf(stderr,"get data from %s\n",inet_ntoa(client.sin_addr));
int len = sizeof(client);
if((bytes = read(new_fb,buffer,1023)) == -1)
{
fprintf(stderr, "read failed %s\n", strerror(errno));
exit(1);
}
buffer[bytes] = '\0';
printf("recived data is %s \n",buffer) ;
close(new_fb);
}
close(sockServer);
}