Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sys/socket.h>
- #include <sys/types.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- #include <arpa/inet.h>
- #define SEQ
- #if defined(SEQ)
- #include <sys/un.h>
- #endif
- int main(int argc, char *argv[])
- {
- int sockfd = 0, n = 0;
- char recvBuff[1024];
- struct sockaddr_in serv_addr;
- #if defined(SEQ)
- struct sockaddr_un remote;
- if ((sockfd = socket(AF_UNIX, SOCK_SEQPACKET, 0)) == -1)
- {
- perror("socket");
- exit(1);
- }
- printf("Trying to connect...\n");
- remote.sun_family = AF_UNIX;
- strcpy(remote.sun_path, argv[1]);
- int len = strlen(remote.sun_path) + sizeof(remote.sun_family);
- if (connect(sockfd, (struct sockaddr *)&remote, len) == -1)
- {
- perror("connect");
- exit(1);
- }
- #else
- if(argc != 2)
- {
- printf("\n Usage: %s <ip of server> \n",argv[0]);
- return 1;
- }
- memset(recvBuff, '0',sizeof(recvBuff));
- if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
- {
- printf("\n Error : Could not create socket \n");
- return 1;
- }
- memset(&serv_addr, '0', sizeof(serv_addr));
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_port = htons(5000);
- if(inet_pton(AF_INET, argv[1], &serv_addr.sin_addr)<=0)
- {
- printf("\n inet_pton error occured\n");
- return 1;
- }
- if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
- {
- printf("\n Error : Connect Failed \n");
- return 1;
- }
- #endif
- #if defined(SEQ)
- n = read(sockfd, recvBuff, sizeof(recvBuff)-1);
- recvBuff[n] = 0;
- if(fputs(recvBuff, stdout) == EOF)
- {
- printf("\n Error : Fputs error\n");
- }
- #else
- while ( (n = read(sockfd, recvBuff, sizeof(recvBuff)-1)) > 0)
- {
- recvBuff[n] = 0;
- if(fputs(recvBuff, stdout) == EOF)
- {
- printf("\n Error : Fputs error\n");
- }
- }
- #endif
- // write data until we block
- char buf[256];
- int dataWritten = 0;
- int retval;
- while(1)
- {
- printf("Writing...\n");
- retval = write(sockfd, buf, sizeof(buf));
- if(retval > 0)
- {
- dataWritten += retval;
- printf("dataWritten %d\n", dataWritten);
- }
- if(retval <= 0)
- {
- break;
- }
- }
- printf("dataWritten %d\n", dataWritten);
- if(n < 0)
- {
- printf("\n Read error \n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement