Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <sys/socket.h>
- #include <stdlib.h>
- #include <netinet/in.h>
- #include <string.h>
- #define PORT 8080
- #define MAXLEN 255
- void die(char *error);
- void handleClient(int sd, struct sockaddr *sa, int length);
- int main(int argc, char const *argv[]) {
- int master_d;
- struct sockaddr_in bind_ip_port, client_ip_port;
- int bind_ip_port_length = sizeof(bind_ip_port);
- int client_ip_port_length = sizeof(client_ip_port);
- master_d = socket(AF_INET, SOCK_DGRAM, 0); // socket descriptor
- if (master_d < 0) {
- die("Could not connect \n");
- }
- printf("Connected !\n");
- if (master_d < 0) die("Socket error");
- printf("Socket() ok\n");
- bind_ip_port.sin_family = AF_INET;
- bind_ip_port.sin_addr.s_addr = inet_addr("127.0.0.1");
- bind_ip_port.sin_port = htons(PORT);
- //fare bind
- if(bind(master_d, (struct sockaddr *) &bind_ip_port, bind_ip_port_length) < 0) {
- die("Could not bind ! \n");
- }
- printf("Bind successful !\n");
- while(1){
- handleClient(master_d, (struct sockaddr *)&client_ip_port, client_ip_port_length);
- }
- close(master_d);
- return 0;
- }
- void handleClient(int sd, struct sockaddr *sa, int length) {
- char sendbuff[MAXLEN], recvbuff[MAXLEN];
- memset(sendbuff, 0, MAXLEN);
- memset(recvbuff, 0, MAXLEN);
- int bytesrecvd = recvfrom(sd, recvbuff, MAXLEN, 0 , sa, &length);
- if(bytesrecvd <= 0) die("Could not receive ! \n");
- printf("Bytes received ! \n");
- strcpy(sendbuff,recvbuff);
- int bytesent = sendto(sd, sendbuff, MAXLEN, 0 , sa ,length);
- if(bytesent <= 0){
- die("Could not reply to client !\n");
- }
- printf("Replied to client with %d bytes\n",bytesent);
- printf("%s\n",sendbuff);
- }
- void die(char * error){
- fprintf(stderr , "%s.\n", error);
- exit(1);
- }
- #######
- client
- ############
- #include <stdio.h>
- #include <sys/socket.h>
- #include <stdlib.h>
- #include <netinet/in.h>
- #include <string.h>
- #define PORT 8080
- #define MAXLEN 255
- void die(char *error);
- int main(int argc, char const *argv[])
- {
- int master_d;
- char sendbuff[MAXLEN], recvbuff[MAXLEN];
- struct sockaddr_in server_ip_port;
- int server_ip_port_length = sizeof(server_ip_port);
- memset(sendbuff, 0 , MAXLEN);
- memset(recvbuff, 0 , MAXLEN);
- master_d = socket(AF_INET, SOCK_DGRAM, 0); // socket descriptor
- if(master_d < 0){
- die("Could not connect \n");
- }
- printf("Connected !");
- if(master_d < 0) die ("Socket error");
- printf("Socket() ok\n");
- printf("Inserisci Stringa");
- gets(sendbuff);
- server_ip_port.sin_family = AF_INET;
- server_ip_port.sin_addr.s_addr = inet_addr("127.0.0.1");
- server_ip_port.sin_port = htons(PORT);
- int bytesent = sendto(master_d , sendbuff , MAXLEN, 0 , (struct sockaddr *) &server_ip_port, server_ip_port_length);
- if(bytesent < 0) {
- die("Could not send any bytes !");
- }
- printf("Bytes sent %d \n",bytesent);
- int bytesrecvd = recvfrom(master_d, recvbuff , MAXLEN , 0, (struct sockaddr *)&server_ip_port, &server_ip_port_length);
- if(bytesrecvd < 0) {
- die("Could not receive any bytes");
- }
- printf("Received %d bytes\n", bytesrecvd);
- printf("%s\n",recvbuff);
- close(master_d);
- return 0;
- }
- void die(char * error){
- fprintf(stderr , "%s.\n", error);
- exit(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement