Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- #include <string.h>
- #include <sys/types.h>
- #include <time.h>
- #define SEQ
- #if defined(SEQ)
- #include <sys/un.h>
- #endif
- int main(int argc, char *argv[])
- {
- int listenfd = 0, connfd = 0;
- char sendBuff[1025];
- time_t ticks;
- #if defined(SEQ)
- int len;
- struct sockaddr_un local;
- // create a sequential packet socket
- if ((listenfd = socket(AF_UNIX, SOCK_SEQPACKET, 0)) == -1) {
- printf("Error!\n");
- }
- local.sun_family = AF_UNIX;
- strcpy(local.sun_path, "thesocket");
- unlink(local.sun_path);
- len = strlen(local.sun_path) + sizeof(local.sun_family);
- if (bind(listenfd, (struct sockaddr *)&local, len) == -1)
- {
- printf("another error\n");
- }
- if (listen(listenfd, 5) == -1)
- {
- printf("listen() error\n");
- }
- #else
- struct sockaddr_in serv_addr;
- listenfd = socket(AF_INET, SOCK_STREAM, 0);
- memset(&serv_addr, '0', sizeof(serv_addr));
- memset(sendBuff, '0', sizeof(sendBuff));
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
- serv_addr.sin_port = htons(5000);
- bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
- listen(listenfd, 10);
- #endif
- while(1)
- {
- connfd = accept(listenfd, (struct sockaddr*)NULL, NULL);
- ticks = time(NULL);
- snprintf(sendBuff, sizeof(sendBuff), "%.24s\r\n", ctime(&ticks));
- write(connfd, sendBuff, strlen(sendBuff));
- printf("sleeping\n");
- sleep(1);
- printf("reading\n");
- char buf[512];
- int bytesRead = read(connfd, buf, sizeof(buf));
- printf("bytesRead %d\n", bytesRead);
- printf("sleeping\n");
- sleep(10);
- printf("done\n");
- close(connfd);
- sleep(1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement