实现简单TCP cs模型
服务端每次把小写的数字转换成大写然后传给客户端。
<为方便查看没有写错误检查>
//server.cpp
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <iostream>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <ctype.h>
using namespace std;
#define SERV_PORT 6666//MAX IS 65535
#define SERV_IP "127.0.0.1"
int main() {
int lfd, cfd;
socklen_t clie_addr_len;
char buf[BUFSIZ];
int n;
struct sockaddr_in serv_addr, clie_addr;
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(SERV_PORT);
inet_pton(AF_INET, SERV_IP, (void *) &serv_addr.sin_addr.s_addr);//OR htonl(INADDR_ANY)
lfd = socket(AF_INET, SOCK_STREAM, 0);
bind(lfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
listen(lfd, 128);
cout << 111111 << endl;
clie_addr_len = sizeof(clie_addr);
cfd = accept(lfd, (struct sockaddr *) &clie_addr, &clie_addr_len);
cout << 11111 << endl;
while (1) {
n = read(cfd, buf, sizeof(buf));// n is the number of the byte returned.
for (int i = 0; i < n; i++) {
buf[i] = toupper(buf[i]);
cout << buf[i] ;
}
write(cfd, buf, n);
}
close(lfd);
close(cfd);
}
//client.cpp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include<string.h>
using namespace std;
#define SERV_PORT 6666
#define SERV_IP "127.0.0.1"
int main(int argc, char *argv[])
{
int cfd;
struct sockaddr_in serv_addr;
memset(&serv_addr, 0, sizeof(serv_addr));
socklen_t serv_addr_len;
serv_addr_len = sizeof(serv_addr);
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(SERV_PORT);
inet_pton(AF_INET, SERV_IP, (void *) &serv_addr.sin_addr.s_addr);//OR htonl(INADDR_ANY) can match suitable IP address
cfd = socket(AF_INET, SOCK_STREAM, 0);
connect(cfd, (struct sockaddr *)&serv_addr, serv_addr_len);
char buf[BUFSIZ]; int n;
while (1) {
fgets(buf, sizeof(buf), stdin);//read a raw(end with \n),and will add \0
write(cfd, buf, strlen(buf));
n = read(cfd, buf, sizeof(buf));// read() will return the number of byte n
write(STDOUT_FILENO, buf, n);
}
close(cfd);
return 0;
}
712

被折叠的 条评论
为什么被折叠?



