Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "test_shared.h"
- #include <stdio.h>
- #include <sys/ioctl.h>
- int main()
- {
- pid_t child = fork();
- if (0 != child)
- {
- int server;
- int clifd;
- struct cli_info ci;
- char buf[DEFAULT_PKG_SIZE];
- int rc;
- pkg_t pkg;
- server = server_create_socket(DEFAULT_PORT);
- if (!server)
- return 1;
- if (!server_listen(server, 1))
- return 1;
- clifd = server_accept(server, &ci);
- if (clifd)
- {
- printf("A new client connected!\n");
- printf("| addr = %d\n", ci.addr);
- printf("| addr_s = %s\n", ci.addr_s);
- printf("| port = %d\n", ci.port);
- pkg = pkg_create(Data, 0);
- sock_receive_pkg(clifd, pkg);
- printf("pkg->header = {type:%d, id:%d, len:%d}\n",
- pkg->header.type,
- pkg->header.id,
- pkg->header.len);
- printf("Message from client:\n");
- rc = (int)(*pkg->data);
- printf("received %d bytes since last package\n", rc);
- fflush(stdout);
- printf("| %d\n", rc);
- printf("received %d bytes since last package\n", rc);
- fflush(stdout);
- free(pkg);
- printf("received %d bytes since last package\n", rc);
- fflush(stdout);
- rc = read(clifd, buf, 100);
- printf("received %d bytes since last package\n", rc);
- fflush(stdout);
- //if (rc <= 0)
- // client_disconnect(clifd);
- //sock_receive_pkg(clifd, pkg);
- //close(clifd);
- }
- server_stop(server);
- printf("server stopped\n");
- return 0;
- }
- else if (0 == child)
- {
- int client = client_create_socket(DEFAULT_IP, DEFAULT_PORT, 0);
- pkg_t pkg = pkg_create(Data, 0);
- int attempts = 10;
- while (!client_connect(client, DEFAULT_IP, DEFAULT_PORT) && attempts--);
- pkg_push_int(pkg, 10);
- printf("client sended %d bytes\n", sock_send_pkg(client, pkg));
- client_disconnect(client);
- free(pkg);
- printf("client disconnected\n");
- return 0;
- }
- else
- {
- perror("fork");
- return 1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment