This commit is contained in:
dongxiancun 2019-06-17 16:31:35 +08:00
commit 0ed3f7c5a3
5 changed files with 2 additions and 230 deletions

View File

@ -59,20 +59,4 @@ int _valid_ipv4_port(const char *str, int port)
fprintf(stderr, "\"%s\" is not a vaild IPv4 address\n", str);
return -1;
}
}
int main()
{
char a[] ="192.168.209.193";
char *pIP = a;
char *pNotIP = "192.168.0.256";
int port = 56298;
int port1 = 3369;
_valid_ipv4_port(pIP, port);
_valid_ipv4_port(pIP, port1);
_valid_ipv4_port(pNotIP, port1);
return 0;
}
}

View File

@ -1,86 +0,0 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
/*
quit后
*/
int main()
{
int clientfd;
struct sockaddr_in serverAddr;
char sendbuf[200];
char recvbuf[200];
int iDataNum;
char a[] = "192.168.209.193";
char *str = a;
int port = 61;
if((clientfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
printf("socket error");
return -1;
}
bzero(&serverAddr, sizeof(serverAddr));
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(port);
printf("the value of str:%s\n", str);
//将字符串的IP地址转化为网络字节序
int ret = inet_pton(AF_INET, str, &serverAddr.sin_addr);
printf("the value of ret is:%d\n",ret);
printf("inet_pton:0x%x\n", serverAddr.sin_addr.s_addr);
if(ret < 0)
{
printf("error");
return -1;
}
int i = connect(clientfd, (struct sockaddr *)&serverAddr, sizeof(serverAddr));
printf("the value of i is:%d\n", i);
if(i < 0)
{
fprintf(stderr, "socket connect error=%d(%s)\n", errno, strerror(errno));
return -1;
}
printf("连接到主机...\n");
while(1)
{
printf("发送消息:");
scanf("%s", sendbuf);
printf("\n");
send(clientfd, sendbuf, strlen(sendbuf), 0);
if(strcmp(sendbuf, "quit") == 0)
break;
printf("读取消息:");
recvbuf[0] = '\0';
iDataNum = recv(clientfd, recvbuf, 200, 0);
recvbuf[iDataNum] = '\0';
printf("%s\n", recvbuf);
}
close(clientfd);
return 0;
}

View File

@ -1,126 +0,0 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
/*
accept阻塞状态
quit后
*/
int main(int args, char** argv)
{
int fd;
struct sockaddr_in server_addr;
struct sockaddr_in clientAddr;
int addr_len = sizeof(clientAddr);
int client;
char buffer[200];
int iDataNum;
char ip[] = "192.168.209.193";
char *str = ip;
uint16_t port = 61;
//建立socket
fd = socket(AF_INET, SOCK_STREAM, 0);
if(fd == -1)
{
printf("socket failed");
return -1;
}
bzero(&server_addr, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(port);
printf("the value of str:%s\n", str);
//将IP地址转换成网络字节序
int ret = inet_pton(AF_INET, str, &server_addr.sin_addr);
printf("the value of ret is:%d\n",ret);
printf("inet_pton:0x%x\n", server_addr.sin_addr.s_addr);
if(ret < 0)
{
printf("error");
return -1;
}
int i = bind(fd, (struct sockaddr *)&server_addr, sizeof(server_addr));
printf("the value of i is :%d\n", i);
if(i < 0)
{
printf("bind error");
return -1;
}
//开启监听,第二个参数是最大监听数
listen(fd,5);
if(listen(fd, 5) < 0)
{
printf("listen error");
return -1;
}
while(1)
{
printf("监听端口: %d\n", port);
client = accept(fd, (struct sockaddr*)&clientAddr, (socklen_t*)&addr_len);
if(client < 0)
{
printf("accept error");
continue;
}
printf("等待消息...\n");
printf("IP is %s\n", inet_ntoa(clientAddr.sin_addr));
printf("Port is %d\n", htons(clientAddr.sin_port));
while(1)
{
printf("读取消息:");
buffer[0] = '\0';
iDataNum = recv(client, buffer, 1024, 0);
if(iDataNum < 0)
{
printf("recv null");
continue;
}
buffer[iDataNum] = '\0';
if(strcmp(buffer, "quit") == 0)
break;
printf("%s\n", buffer);
printf("发送消息:");
scanf("%s", buffer);
printf("\n");
send(client, buffer, strlen(buffer), 0);
if(strcmp(buffer, "quit") == 0)
break;
}
}
close(fd);
return 0;
}

View File

@ -146,7 +146,7 @@ sGATE_GIT_VERS 记录了当前源码在 gitlab 服务器上面的版本信息
+ 解决 git 出错的方法二
1. 下载并安装 [cygwin](http://cygwin.com/install.html)
2. 运行安装程序 ![安装界面](./docs/img/1.PNG)
3. 在源选择界面中按图添加163源 ![源设置界面](./docs/img/6.PNG)
3. 在源选择界面中按图添加163源 [http://mirrors.163.com/cygwin/](http://mirrors.163.com/cygwin/) ![源设置界面](./docs/img/6.PNG)
4. 安装包选择界面中选择中 git 等必要命令(如果没有选择上,以后可以运行安装工具继续选择) ![选择软件包](./docs/img/7.PNG)
5. 点击 下一步 等待安装完成 ![安装完成](./docs/img/10.PNG)
6. 运行 cygwin执行以下代码假设 Windows 目录为 E:\my_projects拉取服务器代码

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 KiB

After

Width:  |  Height:  |  Size: 266 KiB