一、TCP的网络编程操作
1、TCP服务器编程步骤
①.创建一个socket,用函数socket()
②.绑定IP地址、端口等信息到socket上,用函数bind()
③设置允许的最大连接数,用函数listen()
④接收客户端上来的连接,用函数accept()
⑤收发数据,用函数send()和recv(),或者read()和write()
⑥关闭网络连接
2、TCP客户端编程步骤
①创建一个socket,用函数socket()
②设置要连接的对方的IP地址和端口等属性
③连接服务器,用函数connect()
④收发数据,用函数send()和recv(),或者read()和write()
1、TCP服务器编程步骤
①.创建一个socket,用函数socket()
②.绑定IP地址、端口等信息到socket上,用函数bind()
③设置允许的最大连接数,用函数listen()
④接收客户端上来的连接,用函数accept()
⑤收发数据,用函数send()和recv(),或者read()和write()
⑥关闭网络连接
2、TCP客户端编程步骤
①创建一个socket,用函数socket()
②设置要连接的对方的IP地址和端口等属性
③连接服务器,用函数connect()
④收发数据,用函数send()和recv(),或者read()和write()
⑤关闭网络连接
关于上述两个的编写流程具体如下图所示,在创建套接字时指定类型为AF_INET及SOCK_STREAM,即TCP(IPV4协议下),同时注意,客户端与服务器的连接和三次握手发生在accept函数下,listen函数只是创建了socket的监听的模式。
3、TCP的服务器和客户端的编程实例
针对上次提到的各种网络编程的C函数,这里我们根据上面的流程来分别创建TCP服务器和TCP客户端,实现TCP客户端发送消息到服务器中并让服务器打印发送的消息
(1)TCP服务器参考代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>
#define MAX_SIZE 512
#define PORT 3332 //端口号
int main()
{
int sockfd;
int sock_fd;
int recvnum;
int addrlen = sizeof(struct sockaddr);
struct sockaddr_in my_addr;
struct sockaddr addr;
char buf[MAX_SIZE];
// 填充服务器端的资料,用于套接字绑定
bzero(&my_addr,sizeof(struct sockaddr_in));
my_addr.sin_family = AF_INE