十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
创新互联建站主营涟水网站建设的网络公司,主营网站建设方案,重庆APP软件开发,涟水h5重庆小程序开发搭建,涟水网站营销推广欢迎涟水等地区企业咨询
#include sys/types.h
#include sys/socket.h
#include netinet/in.h
#include arpa/inet.h
int main(int argc, char *argv[])
{
int server_sockfd;//服务器端套接字
int client_sockfd;//客户端套接字
int len;
struct sockaddr_in my_addr; //服务器网络地址结构体
struct sockaddr_in remote_addr; //客户端网络地址结构体
int sin_size;
char buf[BUFSIZ]; //数据传送的缓冲区
memset(my_addr,0,sizeof(my_addr)); //数据初始化--清零
my_addr.sin_family=AF_INET; //设置为IP通信
my_addr.sin_addr.s_addr=INADDR_ANY;//服务器IP地址--允许连接到所有本地地址上
my_addr.sin_port=htons(8000); //服务器端口号
/*创建服务器端套接字--IPv4协议,面向连接通信,TCP协议*/
if((server_sockfd=socket(PF_INET,SOCK_STREAM,0))0)
{
perror("socket");
return 1;
}
/*将套接字绑定到服务器的网络地址上*/
if (bind(server_sockfd,(struct sockaddr *)my_addr,sizeof(struct sockaddr))0)
{
perror("bind");
return 1;
}
/*监听连接请求--监听队列长度为5*/
listen(server_sockfd,5);
sin_size=sizeof(struct sockaddr_in);
/*等待客户端连接请求到达*/
if((client_sockfd=accept(server_sockfd,(struct sockaddr *)remote_addr,sin_size))0)
{
perror("accept");
return 1;
}
printf("accept client %s/n",inet_ntoa(remote_addr.sin_addr));
len=send(client_sockfd,"Welcome to my server/n",21,0);//发送欢迎信息
/*接收客户端的数据并将其发送给客户端--recv返回接收到的字节数,send返回发送的字节数*/
while((len=recv(client_sockfd,buf,BUFSIZ,0))0))
{
buf[len]='/0';
printf("%s/n",buf);
if(send(client_sockfd,buf,len,0)0)
{
perror("write");
return 1;
}
}
close(client_sockfd);
close(server_sockfd);
return 0;
}
#include stdio.h
#include sys/types.h
#include sys/socket.h
#include netinet/in.h
#include arpa/inet.h
int main(int argc, char *argv[])
{
int client_sockfd;
int len;
struct sockaddr_in remote_addr; //服务器端网络地址结构体
char buf[BUFSIZ]; //数据传送的缓冲区
memset(remote_addr,0,sizeof(remote_addr)); //数据初始化--清零
remote_addr.sin_family=AF_INET; //设置为IP通信
remote_addr.sin_addr.s_addr=inet_addr("127.0.0.1");//服务器IP地址
remote_addr.sin_port=htons(8000); //服务器端口号
/*创建客户端套接字--IPv4协议,面向连接通信,TCP协议*/
if((client_sockfd=socket(PF_INET,SOCK_STREAM,0))0)
{
perror("socket");
return 1;
}
/*将套接字绑定到服务器的网络地址上*/
if(connect(client_sockfd,(struct sockaddr *)remote_addr,sizeof(struct sockaddr))0)
{
perror("connect");
return 1;
}
printf("connected to server/n");
len=recv(client_sockfd,buf,BUFSIZ,0);//接收服务器端信息
buf[len]='/0';
printf("%s",buf); //打印服务器端信息
/*循环的发送接收信息并打印接收信息--recv返回接收到的字节数,send返回发送的字节数*/
while(1)
{
printf("Enter string to send:");
scanf("%s",buf);
if(!strcmp(buf,"quit")
break;
len=send(client_sockfd,buf,strlen(buf),0);
len=recv(client_sockfd,buf,BUFSIZ,0);
buf[len]='/0';
printf("received:%s/n",buf);
}
close(client_sockfd);//关闭套接字
return 0;
}
c语言退出整个程序或函数的命令是return、goto 、break 、break。
1、return 返回;
return 表示从被调用函数返回主调函数继续执行,返回时可附带一个返回值,由return后面的参数设定。
2、goto 无条件跳转;
goto语句也称作无条件转移语句,其一般格式为goto语句标号:其中语句标号是按照标识符规定书写的符号,放在某一行语句行的前面,标号后加冒号(:)。
3、break 调处最近一层块;
大多数情况下是终止上一层的循环,C语言中break在switch中执行一条case后跳出语句的作用 使程序跳出switch执行switch以后的语句 如果没有break switch会从满足条件的地方执行到switch结构结束。
扩展资料
break语句使用
示例:
#include stdio.h
void main()
{
int x=1;
while(x=4)
{
printf("x=%d\n",x);
if (x==3)
{
break;
}
x++;
}
}
fclose函数为C语言标准库函数,用来关闭一个已打开的文件。
该函数在stdio.h中声明,原型为:
int fclose(FILE *fp);
当fclose被调用时,一个打开的文件(以文件指针fp标识)会被关闭,关闭后,无法再对fp执行读写操作。
如果关闭成功,返回0,否则返回负值。C语言文件操作的标准流程为
1、fopen打开文件;
2、通过各种读写函数,读写文件;
3、所有操作结束后,调用fclose关闭文件。
C语言
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
如果你要编写的是一个服务程序,那么先调用socket()创建一个套接字,然后调用bind()绑定ip地址和端口,再然后启动一个死循环,循环中调用accept()接受连接,对于每个接受的连接,可以起线程进行处理,在线程中调用send()、recv()发送和接收数据。
如果你要编写的是一个客户端程序,那么就简单多了,先调用socket()创建一个套接字,然后调用connect()连接服务器,之后就是调用send()、recv()发送和接收数据了。