linux socket 网络编程入门
来源:互联网 发布:广联达园林预算软件 编辑:程序博客网 时间:2024/05/23 14:47
客户端源码
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
int main(int argc,char*argv)
{
int sockfd,numbytes;
char buf[100];
struct hostent*he;
struct sockaddr_in their_addr;
int i=0;
he = gethostbyname(argv[1]);
if ((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
perror("socket");
exit(1);
}
their_addr.sin_family=AF_INET;
their_addr.sin_port=htons(2323);
their_addr.sin_addr=*((struct in_addr*) he->h_addr);
bzero(&(their_addr.sin_zero),8);
if (connect(sockfd,(struct sockaddr *)&their_addr,sizeof(struct sockaddr))==-1)
{
perror("connect");
exit(1);
}
if (send(sockfd,"hello!",6,0)==-1)
{
perror("send");
exit(1);
}
if ((numbytes=recv(sockfd,buf,100,0))==-1)
{
perror("recv");
exit(1);
}
buf[numbytes]='';
printf("result %s",buf);
close(sockfd);
return 0;
}
服务端源码
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
int main()
{
int sockfd,new_fd;
int numbytes;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
int sin_size;
if ((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
perror("socket");
exit(1);
}
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(2323);
my_addr.sin_addr.s_addr=INADDR_ANY;
bzero(&(their_addr.sin_zero),8);
if (bind(sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr))==-1)
{
perror("bind");
exit(1);
}
if (listen(sockfd,10)==-1)
{
perror("listen");
exit(1);
}
while(1)
{
sin_size=sizeof(struct sockaddr_in);
perror("server is run");
if ((new_fd=accept(sockfd,(struct sockaddr*)&their_addr,&sin_size))==-1)
{
perror("accept");
exit(1);
}
if (!fork())
{
if (send(new_fd,"hello,world!",14,0)==-1)
{
perror("send");
close(new_fd);
exit(0);
}
}
close(new_fd);
}
close(sockfd);
}
分别在客户端和服务器段采用gcc编译
如果不慎终止了服务器进程
lsof -i : 1234 其中1234为端口号
kill -9 6668 其中6668为进程pid
- linux socket 网络编程入门
- Linux网络socket编程入门
- Linux socket 网络编程入门
- linux网络编程入门socket函数介绍
- 网络编程入门-socket
- Socket网络编程入门
- 网络Socket入门编程
- linux 网络编程 socket
- Linux Socket 网络编程
- Linux网络socket编程
- Linux网络编程(socket)
- Linux Socket 网络编程
- linux网络编程 socket
- linux Socket编程入门
- Linux socket编程入门
- linux网络编程入门——基于socket的proxy
- linux网络编程——套接字(socket)入门
- [Python]网络编程--socket入门
- QML flickble
- Symbian手机振动API
- iPhone和Android社交通讯应用盘点
- jquery实现无刷新验证码
- 21条经典语录,让你走向成功。
- linux socket 网络编程入门
- camera学习(一)--参数设置
- 如何定向wxPython程序的输出
- moss视频
- 如何编译一个内核 - Fedora方式
- autoconf 和 automake 生成 Makefile 文件学习
- 五一 我们相约去登凤凰岭
- zoj 1139 || poj 1468 Rectangles
- 他俩