unix网络编程第一章demo
2016-08-10 00:55
197 查看
之前一直以为time_wait状态就是主动关闭的那一方产生.然后这个端口一直不可以用.实际我发现服务端监听一个端口.客户端发来连接后.传输数据后.服务端关闭客户端套接字后.用netstat -nat | grep 端口 查看了产生了time_wait.但客户端依然可以不断连接服务端.然后服务端不断关闭.并不会影响监听端口.原来是只有服务端把监听端口描述符给关闭(不是accept那个连接.虽然,端口相同),在2mls时间内再次启动这个端口..就会提示Address already in use另外inet_pton(AF_INET,ip地址,&serv_addr.sin_addr);
[/code]
服务端
[/code]1.5题 不同tcp对数据做不同的处理,每次读取会发现count不同.
来自为知笔记(Wiz)
#include "unp.h"
int main(int argc,char *argv[])
{ if(argc<2)
{
printf("please input server_ip\n");
return 0;
}
int fd=socket(AF_INET,SOCK_STREAM,0);
if(fd<0)
err_quit("socket create error");
struct sockaddr_in servaddr;
struct sockaddr_in clientaddr;
clientaddr.sin_family=AF_INET;
clientaddr.sin_port=htonl(5900);
clientaddr.sin_addr.s_addr=htons(INADDR_ANY);
bind(fd,(SA*)&clientaddr,sizeof(clientaddr));`
servaddr.sin_family=AF_INET;//message proctoal
servaddr.sin_port=htons(13);
if(inet_pton(AF_INET,argv[1],&servaddr.sin_addr)<0)
err_quit("inet_pton error");
if(connect(fd,(SA*)&servaddr,sizeof(servaddr))<0)
err_quit("connect error");
char buf[1024];
int read_length=0;
int count=0;
while((read_length=read(fd,buf,sizeof(buf)))>0)
{ count++;
buf[read_length]='\0';
printf("%s\n read %d ",buf,count);
}
printf("count=%d\n",count);
if(read_length<0)
err-quit("error of read");
close(fd);
return 0;
[/code]
服务端
#include "unp.h"
#include <time.h>
int main(int argc,char *argv[])
{
int listenfd=Socket(AF_INET,SOCK_STREAM,0);
struct sockaddr_in servaddr;
servaddr.sin_family=AF_INET;
inet_pton(AF_INET,"0.0.0.0",&servaddr.sin_addr);
servaddr.sin_port=htons(13);
Bind(listenfd,(SA*)&servaddr,sizeof(servaddr));
Listen(listenfd,10);
time_t ticks;
int i;
char buf[1024];
for(;;)
{
int client_fd=accept(listenfd,NULL,0);
ticks=time(NULL);
snprintf(buf,sizeof(buf),"%.24s\r\n",ctime(&ticks));
for(i=0;i<strlen(buf);++i)
Write(client_fd,&buf[i],1);
Close(client_fd);
//Close(listenfd);
}
return 0;
}
~
[/code]1.5题 不同tcp对数据做不同的处理,每次读取会发现count不同.
来自为知笔记(Wiz)
相关文章推荐
- [2016/8/22][Unix网络编程]第一章:①时间获取程序
- THREEJS 第一章 第一个DEMO
- unix网络编程笔记(第一章)
- 全栈工程师之路-中级篇之小程序开发-第一章第三节阅读官方demo
- 【unix网络编程】第一章简单的时间获取例程
- UNIX网络编程 第一章 简介
- Unix 网络编程第一章的demo
- UNIX网络编程 第一章
- 微信开放平台API学习笔记——第一章:API的注册与官方Demo的调试
- UNIX网络编程卷一 笔记 第一章 简介
- 《UNIX网络编程》第一章——一个简单的时间获取客户端/服务器程序
- 《kubernetes 权威指南》第一章 demo 纠正
- UNIX网络编程 UNP 卷2 第一章
- JQuery Smart UI 简介 (三) - 设计思想【附全部框架源码+Demo(.Net)】[新增vs2010版下载]
- cocos2d-x Demo-实现画笔功能
- 第一个demo
- scip第一章总结
- java151229Demo异常在父子类中的覆盖问题
- Android开发-Volley-解析Json使用方法-4-完整Demo-AndroidStudio
- AES和RSA加密算法入门Demo