socket学习记录
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <unistd.h>
#include <ctype.h>
#include <netinet/in.h>
#include <stdio.h>
#include <arpa/inet.h>
#define SERV_PORT 9527
#define BUFFSIZE 1024
int main(void)
{
int lfd, cfd, res;
char buff[BUFFSIZE], client_ip[1024];
struct sockaddr_in serv_addr, client_addr;
socklen_t client_addr_len;
lfd = socket(AF_INET, SOCK_STREAM, 0);
if (lfd == -1)
{
printf("socket error!");
}
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(SERV_PORT);
serv_addr.sin_addr.s_addr =htonl(INADDR_ANY);
res = bind(lfd, (struct sockaddr*)&serv_addr,sizeof(serv_addr));
if(res == -1)
{
printf("bind error!");
}
listen(lfd, 128);
client_addr_len = sizeof(client_addr);
cfd = accept(lfd, (struct sockaddr*)&client_addr, &client_addr_len);
if(cfd == -1)
{
printf("accept error!");
}
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
printf("client ip:%s port:%d\n",inet_ntop(AF_INET, &client_addr.sin_addr, client_ip, sizeof(client_ip)),
ntohs(client_addr.sin_port));
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:>>>>>>\n");
while(1)
{
res = read(cfd, buff, sizeof(buff));
write(STDOUT_FILENO, buff, res);
for (int i =0; i< res; i++)
{
buff[i] = toupper(buff[i]);
}
write(cfd, buff, res);
}
close(lfd);
close(cfd);
}
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <unistd.h>
#include <ctype.h>
#include <netinet/in.h>
#include <stdio.h>
#include <arpa/inet.h>
#define SERV_PORT 9527
#define BUFFSIZE 1024
#define SEVER_IP "172.21.94.59"
#define SERVER_PORT 9527
int main(void)
{
int sockfd;
int i, n;
char *str="hello\n";
char rec_buf[BUFFSIZE];
struct sockaddr_in servaddr;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1)
{
printf("socket error!");
}
servaddr.sin_family = AF_INET;
inet_pton(AF_INET, SEVER_IP, &servaddr.sin_addr);
servaddr.sin_port = htons(SERVER_PORT);
connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
while(1)
{
write(sockfd, str, strlen(str));
n = read(sockfd, rec_buf, BUFFSIZE);
write(STDOUT_FILENO, rec_buf, n);
}
close(sockfd);
}