TPC/IP网络编程(1)

C语言对文件操作

1.打开文件

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
//path: 文件名的字符串地址
//flag: 文件打开模式信息
int open(const char *path, int flag);

成功返回文件描述符,失败返回-1。
flag参数具体见表:

2.关闭文件

#include <unistd.h>
//需要关闭的文件(或套接字)的文件描述符
int close(int fd);

成功返回0,失败返回-1。

3.将数据写入文件

#include <unistd.h>
//fd:数据传输的文件描述符
//buf:要传输的数据的缓冲地址
//nbytes:要传输的数据的字节数
ssize_t write(int fd, const void *buf, size_t nbytes);

成功返回写入的字节数,失败返回-1。

此函数定义中, size_t是通过typedef声明的unsigned int类型。对ssize_t来说, size_t前面多加的s代表signed,即ssize_t是通过typedef声明的signed int类型。
4.读取文件数据
与前面的write对应。

#include <unistd.h>
//fd:数据传输的文件描述符
//buf:要保存接收数据的缓冲地址
//nbytes:要读入的数据的字节数
ssize_t read(int fd, void *buf, size_t nbytes);

成功返回读入的字节数(遇到文件结尾返回0),失败返回-1。

网络编程步骤

服务器端步骤

client端步骤

常用默认调用函数

1.调用socket函数创建

#include <sys/socket.h>
int socket(int domain, int type, int protocol);

成功返回文件描述符,失败返回-1。
2.调用bind函数为socket分配IP地址和端口号

int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen);

成功返回0,失败返回-1。
3.调用listen函数使socket转为可接受连接的状态。

int listen(int sockfd, int backlog);

成功返回0,失败返回-1。
4.调用accept函数受理连接请求

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

套接字的创建

linux下创建套接字socket

1.创建TCP套接字

#include <sys/socket.h>
int tcp_socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

2.创建UDP套接字

#include <sys/socket.h>
int tcp_socket = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);

windows下创建套接字socket

windows下socket套接字的创建函数与linux下的函数,其函数名和参数名都相同,只是返回值类型不同。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qwebaby2/article/details/105052230