initial commit
This commit is contained in:
commit
8e54631e4b
8 files changed
+303
No files matched your search
@@ -0,0 +1,55 @@
|
||||
#include <arpa/inet.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/socket.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define PORT 5555
|
||||
#define BUFFER_SIZE 1024
|
||||
|
||||
int main() {
|
||||
int sock;
|
||||
struct sockaddr_in server_addr;
|
||||
char buffer[BUFFER_SIZE];
|
||||
|
||||
sock = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (sock < 0) {
|
||||
perror("socket");
|
||||
return 1;
|
||||
}
|
||||
|
||||
server_addr.sin_family = AF_INET;
|
||||
server_addr.sin_port = htons(PORT);
|
||||
inet_pton(AF_INET, "127.0.0.1", &server_addr.sin_addr);
|
||||
|
||||
if (connect(sock, (struct sockaddr *) &server_addr, sizeof(server_addr)) <
|
||||
0) {
|
||||
perror("connect");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (fork() == 0) {
|
||||
// Процесс чтения
|
||||
while (1) {
|
||||
int valread = read(sock, buffer, BUFFER_SIZE);
|
||||
if (valread > 0) {
|
||||
buffer[valread] = '\0';
|
||||
printf("%s", buffer);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
char username[50];
|
||||
fgets(username, 50, stdin);
|
||||
username[strlen(username)-1] = '\0';
|
||||
send(sock, username, 50, 0);
|
||||
printf("username = %s\n", username);
|
||||
// Процесс отправки
|
||||
while (1) {
|
||||
fgets(buffer, BUFFER_SIZE, stdin);
|
||||
send(sock, buffer, strlen(buffer), 0);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in new issue
Block a user