Change setSockAddress()
Co-authored-by: Ezequiel Bellver <ebellver@itba.edu.ar> Co-authored-by: Juan Barmasch <jbarmasch@itba.edu.ar>
This commit is contained in:
parent
77f3ccf2eb
commit
465b264684
8
client.c
8
client.c
|
@ -6,18 +6,16 @@ int main(int argc, char *argv[]) {
|
||||||
int fd = createSocket();
|
int fd = createSocket();
|
||||||
|
|
||||||
struct sockaddr_in serv_addr;
|
struct sockaddr_in serv_addr;
|
||||||
setSockAddress(argc, argv, &serv_addr);
|
setSockAddress(argc, argv, &serv_addr, INADDR_LOOPBACK);
|
||||||
|
|
||||||
connectToSocket(fd, &serv_addr);
|
connectToSocket(fd, &serv_addr);
|
||||||
|
|
||||||
processAndSendInput(fd);
|
readAndSendInput(fd);
|
||||||
|
|
||||||
closeSocket(fd);
|
closeSocket(fd);
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void processAndSendInput(int fd) {
|
void readAndSendInput(int fd) {
|
||||||
char input[MAX_LEN] = {0};
|
char input[MAX_LEN] = {0};
|
||||||
int readChars;
|
int readChars;
|
||||||
while ((readChars = read(STDIN_FILENO, input, MAX_LEN - 1)) != 0) {
|
while ((readChars = read(STDIN_FILENO, input, MAX_LEN - 1)) != 0) {
|
||||||
|
|
|
@ -13,6 +13,6 @@
|
||||||
|
|
||||||
#define MAX_LEN 100
|
#define MAX_LEN 100
|
||||||
|
|
||||||
void processAndSendInput(int fd);
|
void readAndSendInput(int fd);
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -12,12 +12,11 @@
|
||||||
#include "errors.h"
|
#include "errors.h"
|
||||||
|
|
||||||
#define PORT 8080
|
#define PORT 8080
|
||||||
#define ADDRESS "127.0.0.1"
|
|
||||||
#define MAX_PEND_REQ 3
|
#define MAX_PEND_REQ 3
|
||||||
|
|
||||||
int createSocket();
|
int createSocket();
|
||||||
void setSockOptions(int fd);
|
void setSockOptions(int fd);
|
||||||
void setSockAddress(int argc, char *argv[], struct sockaddr_in * address);
|
void setSockAddress(int argc, char *argv[], struct sockaddr_in * address, in_addr_t inAddress);
|
||||||
int bindAndGetSocket(int fd, struct sockaddr_in *address);
|
int bindAndGetSocket(int fd, struct sockaddr_in *address);
|
||||||
void connectToSocket(int fd, struct sockaddr_in *address);
|
void connectToSocket(int fd, struct sockaddr_in *address);
|
||||||
void closeSocket(int fd);
|
void closeSocket(int fd);
|
||||||
|
|
4
server.c
4
server.c
|
@ -7,8 +7,7 @@ int main(int argc, char *argv[]) {
|
||||||
setSockOptions(fd);
|
setSockOptions(fd);
|
||||||
|
|
||||||
struct sockaddr_in address;
|
struct sockaddr_in address;
|
||||||
setSockAddress(argc, argv, &address);
|
setSockAddress(argc, argv, &address, INADDR_ANY);
|
||||||
|
|
||||||
int fdAux = bindAndGetSocket(fd, &address);
|
int fdAux = bindAndGetSocket(fd, &address);
|
||||||
|
|
||||||
if (setvbuf(stdout, NULL, _IONBF, 0) != 0)
|
if (setvbuf(stdout, NULL, _IONBF, 0) != 0)
|
||||||
|
@ -17,7 +16,6 @@ int main(int argc, char *argv[]) {
|
||||||
startChallenge(fdAux);
|
startChallenge(fdAux);
|
||||||
|
|
||||||
closeSocket(fd);
|
closeSocket(fd);
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ int createSocket() {
|
||||||
|
|
||||||
void setSockOptions(int fd) {
|
void setSockOptions(int fd) {
|
||||||
int opt = 1;
|
int opt = 1;
|
||||||
if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)))
|
if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0)
|
||||||
printSystemError("Sockets: setsockopt()");
|
printSystemError("Sockets: setsockopt()");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,9 +39,9 @@ void closeSocket(int fd) {
|
||||||
printSystemError("Sockets: close()");
|
printSystemError("Sockets: close()");
|
||||||
}
|
}
|
||||||
|
|
||||||
void setSockAddress(int argc, char *argv[], struct sockaddr_in * address) {
|
void setSockAddress(int argc, char *argv[], struct sockaddr_in * address, in_addr_t inAddress) {
|
||||||
address->sin_family = AF_INET;
|
address->sin_family = AF_INET;
|
||||||
address->sin_addr.s_addr = inet_addr(ADDRESS);
|
address->sin_addr.s_addr = htonl(inAddress);
|
||||||
address->sin_port = htons(PORT);
|
address->sin_port = htons(PORT);
|
||||||
|
|
||||||
int opt;
|
int opt;
|
||||||
|
@ -51,7 +51,8 @@ void setSockAddress(int argc, char *argv[], struct sockaddr_in * address) {
|
||||||
printError("Usage: server [-a address] [-p port]\n");
|
printError("Usage: server [-a address] [-p port]\n");
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'a':
|
case 'a':
|
||||||
address->sin_addr.s_addr = inet_addr(optarg);
|
if (inet_pton(AF_INET, optarg, &address->sin_addr) <= 0)
|
||||||
|
printError("Sockets: inet_pton()");
|
||||||
break;
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
address->sin_port = htons(atoi(optarg));
|
address->sin_port = htons(atoi(optarg));
|
||||||
|
|
Loading…
Reference in New Issue