博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
REDHAT 网络通讯源码
阅读量:4078 次
发布时间:2019-05-25

本文共 1547 字,大约阅读时间需要 5 分钟。

client.c

#include <sys/socket.h>

#include <netinet/in.h>
int main(int argc,char **argv)
{
 char recvbuff[100];
 int sockfd;
 struct sockaddr_in serveraddr;
 printf("start/n");
 sockfd = socket(AF_INET,SOCK_STREAM,0);
 printf("socket/n");
 bzero(&serveraddr,sizeof(serveraddr));
 serveraddr.sin_family = AF_INET;
 serveraddr.sin_port = htons(10000);
 inet_pton(AF_INET, "10.144.15.158", &serveraddr.sin_addr);
 connect(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr)); //if sturct is cancel,build will err
 printf("connect/n");
 recv(sockfd,recvbuff,sizeof(recvbuff),0);
 printf("%s/n",recvbuff);
 close(sockfd);
}

server.c

#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc,char *argv[])
{
 int ret;
 int listensock,connsock;
    struct sockaddr_in serveraddr;
 printf("start/n");
 const char buff[] = "Hello! Welcome here!/r/n"; 
 listensock = socket(AF_INET,SOCK_STREAM,0);
 bzero(&serveraddr,sizeof(serveraddr));
 serveraddr.sin_family = AF_INET;
 serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
 serveraddr.sin_port = htons(10000);
 int on=1;
 setsockopt(listensock,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on));
 printf("bind/n");
 ret=bind(listensock,(struct sockaddr *)&serveraddr,sizeof(struct sockaddr)); //if struct is cancel,build will err.
 if(ret==-1)
 {
  printf("bind err/n");
  exit(1);
 }
 listen(listensock,1024);
 connsock = accept(listensock,(struct sockaddr *)NULL, NULL);
 printf("accept /n");
 send(connsock,buff,sizeof(buff), 0);
 ret=close(connsock);
 if(ret==-1)
 printf("colse err1 /n");
 ret=close(listensock);
 if(ret==-1)
 printf("colse err2 /n");
}
 

转载地址:http://mzini.baihongyu.com/

你可能感兴趣的文章
springcloud 的eureka服务注册demo
查看>>
eureka-client.properties文件配置
查看>>
MODULE_DEVICE_TABLE的理解
查看>>
platform_device与platform_driver
查看>>
platform_driver平台驱动注册和注销过程(下)
查看>>
.net强制退出主窗口的方法——Application.Exit()方法和Environment.Exit(0)方法
查看>>
c# 如何调用win8自带的屏幕键盘(非osk.exe)
查看>>
build/envsetup.sh 简介
查看>>
Android framework中修改或者添加资源无变化或编译不通过问题详解
查看>>
linux怎么切换到root里面?
查看>>
linux串口操作及设置详解
查看>>
安装alien,DEB与RPM互换
查看>>
编译Android4.0源码时常见错误及解决办法
查看>>
Android 源码编译make的错误处理
查看>>
linux环境下C语言中sleep的问题
查看>>
ubuntu 12.04 安装 GMA3650驱动
查看>>
新版本的linux如何生成xorg.conf
查看>>
xorg.conf的编写
查看>>
启用SELinux时遇到的问题
查看>>
virbr0 虚拟网卡卸载方法
查看>>