|
#include <stdio.h> |
|
#include <stdlib.h> |
|
#include <netdb.h> |
|
#include <netinet/in.h> |
|
#include <string.h> |
|
int main(int argc, char *argv[]) |
|
int sockfd, portno, n; |
|
struct sockaddr_in serv_addr; |
|
struct hostent *server; |
|
char buffer[256]; |
|
if (argc < 3) { |
|
fprintf(stderr,"usage %s hostname port\n", argv[0]); |
|
exit(0); |
|
portno = atoi(argv[2]); |
|
sockfd = socket(AF_INET, SOCK_STREAM, 0); |
|
perror("ERROR opening socket"); |
|
exit(1); |
|
server = gethostbyname(argv[1]); |
|
if (server == NULL) |
|
fprintf(stderr,"ERROR, no such host\n"); |
|
bzero((char *) &serv_addr, sizeof(serv_addr)); |
|
serv_addr.sin_family = AF_INET; |
|
bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); |
|
serv_addr.sin_port = htons(portno); |
|
if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) |
|
printf("Please enter the message: "); |
|
bzero(buffer,256); |
|
fgets(buffer,255,stdin); |
|
n = write(sockfd, buffer, strlen(buffer)); |
|
if (n < 0) |
|
perror("ERROR writing to socket"); |
|
n = read(sockfd, buffer, 255); |
|
printf("%s\n",buffer); |
|
return 0; |
|
portno = 5001; |
|
serv_addr.sin_addr.s_addr = INADDR_ANY; |
|
if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) |
|
listen(sockfd,5); |
|
clilen = sizeof(cli_addr); |
|
newsockfd = accept(sockfd, (struct sockaddr *)&cli_addr, &clilen); |
|
if (newsockfd < 0) |
|
bzero(buffer,256); |
|
|
|
AF_INET |