C实现简单TCP的C/S模型(Linux & Mac OS系统)
来源:互联网 发布:交大医学院网络 编辑:程序博客网 时间:2024/05/16 18:54
Server:
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <unistd.h>//sleep();
#include <netinet/in.h>
#include <arpa/inet.h>
int main(int argc,const char * argv[]) {
//Server Septs:
/*
1.创建socket
2.循环监听
3.创建线程处理数据
*/
//创建流套接字:
int sock;
struct sockaddr_in in;
if ((sock = socket(AF_INET,SOCK_STREAM,0)) == -1) {
printf("创建原始套接字出错!\n");
exit(1);//异常退出1/-1,正常退出0
}
//封装地址:(为本机地址)
in.sin_addr.s_addr = inet_addr("0.0.0.0");
in.sin_family = AF_INET;
in.sin_port = htons(4396);
//bind连接socket与ip:
if (bind(sock, (struct sockaddr *)&in,sizeof(in)) != 0) {
printf("bind error!\n");
exit(1);
}
//监听:
if (listen(sock, 5) != 0) {
printf("listen error!\n");
exit(1);
}
printf("Established!\n");
struct sockaddr_in receiveAddr;
socklen_t receiveAddrLen = sizeof(receiveAddr);
while ((accept(sock, (struct sockaddr *)&receiveAddr, &receiveAddrLen)) != -1) {
printf("来自 %s 的连接!\n",inet_ntoa(receiveAddr.sin_addr));
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>//close();
int main(int argc,const char * argv[]) {
/*Step:
1.创建socket
2.connect
*/
int sockfd;
struct sockaddr_in addr;
if ((sockfd = socket(AF_INET, SOCK_STREAM,0)) == -1) {
printf("创建原始套接字出错!\n");
exit(1);//异常退出1/-1,正常退出0
}
//这两种方式都可以将char*类型的地址转换成网络字节序:
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
// inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr);
addr.sin_family = AF_INET;
addr.sin_port = htons(4396);
if ((connect(sockfd, (struct sockaddr*)&addr,sizeof(addr))) != 0) {
perror("connect");
close(sockfd);
exit(-1);
}
printf("Connected to server!\n");
return 0;
}
- C实现简单TCP的C/S模型(Linux & Mac OS系统)
- TCP&UDP C/S在linux上的简单实现
- 基于tcp的c/s模型的一个简单的socket实现
- C/S模型-TCP
- linux网络编程简单C/S模型实现
- C语言实现ping功能(Linux & Mac OS系统下)有注释
- 基于tcp的C/S模型
- c语言实现简单的udp传输( c/s 模型)
- Linux下TCP协议的C/S架构实现
- C/S模型---TCP方式
- TCP C/S 多线程模型
- [C语言]基于TCP的基本C/S模型
- c++ Windows Socket实现最简单的C/S网络通信(TCP)
- 基于TCP连接的C S模式的最简单模型代码
- C/S架构的简单文件传输系统的实现
- C/S架构的简单文件传输系统的实现
- C/S架构的简单文件传输系统的实现
- C/S架构的简单文件传输系统的实现
- 学习:传输层之TCP协议
- Java检查异常和非检查异常区别
- LCS算法
- hibernate之where子句
- Redis常用操作
- C实现简单TCP的C/S模型(Linux & Mac OS系统)
- 我的第一个博客
- 【SQL】SQL中distinct的用法
- 查看class 文件编译的jdk 版本号
- DeepLearning 笔记(一) ImageNet Classification with Deep Convolutional Neural Networks
- 常用cron表达式
- 如何使用python处理JSON数据
- 简单记下httpclientjava实现get,post请求
- oracle--18.数据类型