socket通信实例
ref: http://www.cnblogs.com/xudong-bupt/archive/2013/12/29/3483059.html
http://blog.csdn.net/love_gaohz/article/details/43700411
http://blog.csdn.net/wesleyluo/article/details/6149071
server.cpp
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/shm.h>
#include <sys/time.h>
#define MYPORT 5566
#define QUEUE 20
#define BUFFER_SIZE 1024
int timeval_subtract(struct timeval* result, struct timeval* x, struct timeval* y)
{
int nsec;
if ( x->tv_sec>y->tv_sec )
;
if ( (x->tv_sec==y->tv_sec) && (x->tv_usec>y->tv_usec) )
;
result->tv_sec = ( y->tv_sec-x->tv_sec );
result->tv_usec = ( y->tv_usec-x->tv_usec );
)
{
result->tv_sec--;
result->tv_usec+=;
}
;
}
int main()
{
///定义sockfd
);
///定义sockaddr_in
struct sockaddr_in server_sockaddr;
server_sockaddr.sin_family = AF_INET;
server_sockaddr.sin_port = htons(MYPORT);
server_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
///bind,成功返回0,出错返回-1
)
{
perror("bind");
exit();
}
///listen,成功返回0,出错返回-1
)
{
perror("listen");
exit();
}
///客户端套接字
char buffer[BUFFER_SIZE];
struct sockaddr_in client_addr;
socklen_t length = sizeof(client_addr);
///成功返回非负描述字,出错返回-1
int conn = accept(server_sockfd, (struct sockaddr*)&client_addr, &length);
)
{
perror("connect");
exit();
}
#if 1
int flags;
)
{
;
}
)
{
;
}
#endif
#if 1
; //设置为10M
setsockopt( conn, SOL_SOCKET, SO_RCVBUF, ( const char* )&nRecvBufLen, sizeof( int ) );
#endif
struct timeval start,stop,diff;
;
)
{
)
{
gettimeofday(&start,);
printf( "CAPABILITY_1_SECS_%010u_USEC_%010u\n", start.tv_sec, start.tv_usec );
}
);
i++;
)
{
gettimeofday(&stop,);
printf( "CAPABILITY_2_SECS_%010u_USEC_%010u\n", stop.tv_sec, stop.tv_usec );
timeval_subtract(&diff,&start,&stop);
printf( "CAPABILITY_3_SECS_%010u_USEC_%010u\n", diff.tv_sec, diff.tv_usec );
}
}
close(conn);
close(server_sockfd);
;
}
client.cpp
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/shm.h>
#include <sys/time.h>
#include <time.h>
#define MYPORT 5566
#define BUFFER_SIZE 1024
int timeval_subtract(struct timeval* result, struct timeval* x, struct timeval* y)
{
int nsec;
if ( x->tv_sec>y->tv_sec )
;
if ( (x->tv_sec==y->tv_sec) && (x->tv_usec>y->tv_usec) )
;
result->tv_sec = ( y->tv_sec-x->tv_sec );
result->tv_usec = ( y->tv_usec-x->tv_usec );
)
{
result->tv_sec--;
result->tv_usec+=;
}
;
}
int main()
{
///定义sockfd
);
///定义sockaddr_in
struct sockaddr_in servaddr;
memset(&servaddr, , sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(MYPORT); ///服务器端口
servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); ///服务器ip
///连接服务器,成功返回0,错误返回-1
)
{
perror("connect");
exit();
}
#if 1
int flags;
)
{
;
}
)
{
;
}
#endif
#if 1
; //设置为10M
setsockopt( sock_cli, SOL_SOCKET, SO_SNDBUF, ( const char* )&nSendBufLen, sizeof( int ) );
#endif
char sendbuf[BUFFER_SIZE];
strcpy(sendbuf, "hello server");
struct timeval start,stop,diff;
;
)
{
)
{
gettimeofday(&start,);
printf( "CAPABILITY_1_SECS_%010u_USEC_%010u\n", start.tv_sec, start.tv_usec );
}
send(sock_cli, sendbuf, strlen(sendbuf),); ///发送
i++;
)
{
gettimeofday(&stop,);
printf( "CAPABILITY_2_SECS_%010u_USEC_%010u\n", stop.tv_sec, stop.tv_usec );
timeval_subtract(&diff,&start,&stop);
printf( "CAPABILITY_3_SECS_%010u_USEC_%010u\n", diff.tv_sec, diff.tv_usec );
}
}
close(sock_cli);
;
}
socket通信实例的更多相关文章
- Flex通信-与Java实现Socket通信实例
Flex通信-与Java实现Socket通信实例 转自:http://blessht.iteye.com/blog/1136888 博客分类: Flex 环境准备 [服务器端] JDK1.6,“ja ...
- Linux下简单的socket通信实例
Linux下简单的socket通信实例 If you spend too much time thinking about a thing, you’ll never get it done. —Br ...
- Java Socket 通信实例 - 转载
基于Tcp协议的简单Socket通信实例(JAVA) 好久没写博客了,前段时间忙于做项目,耽误了些时间,今天开始继续写起~ 今天来讲下关于Socket通信的简单应用,关于什么是Socket以及一些 ...
- 网络协议栈学习(一)socket通信实例
网络协议栈学习(一)socket通信实例 该实例摘自<linux网络编程>(宋敬彬,孙海滨等著). 例子分为服务器端和客户端,客户端连接服务器后从标准输入读取输入的字符串,发送给服务器:服 ...
- (8)Linux(客户端)和Windows(服务端)下socket通信实例
Linux(客户端)和Windows(服务端)下socket通信实例: (1)首先是Windows做客户端,Linux做服务端的程序 Windows Client端 #include <st ...
- 基于Tcp协议的简单Socket通信实例(JAVA)
好久没写博客了,前段时间忙于做项目,耽误了些时间,今天开始继续写起~ 今天来讲下关于Socket通信的简单应用,关于什么是Socket以及一些网络编程的基础,这里就不提了,只记录最简单易懂实用的东西. ...
- 简单的C# Socket通信实例
一.套接字(socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本 ...
- Java Socket通信实例
一.简单的客户端与服务器一对一连接: Socket通信的步骤: 1.创建ServerSocket和Socket 2.打开连接到Scket的输入/输出流 3.按照协议对Socket进行读/写操作 4.关 ...
- Socket通信实例(C#)
SOCKET原理 一.套接字(socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息: ...
- Linux C++ TCP Socket通信实例
环境:Linux 语言:C++ 通信方式:TCP 下面用TCP协议编写一个简单的服务器.客户端,其中服务器端一直监听本机的6666号端口.如果收到连接请求,将接收请求并接收客户端发来的消息:客户端与服 ...
随机推荐
- 【USACO】草地排水
Drainage Ditches 草地排水 usaco 4.2.1描述在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一 ...
- swift 2 选择头像图片
一句话选择单个头像图片 新建ImagePickerViewController类: /* let imagePicker = ImagePickerViewController() imagePick ...
- js 冒泡排序
var arr = []; for(var i=0; i<100000; i++){ arr.push(parseInt(Math.random()*100)) }; var t1 = Date ...
- myeclipse连接数据库oracle(添加jdbc.properties)
第一步:在src下面建一个包com.xsl.conf 第二步:在建好的包下面新建一个jdbc.properties 第三步:在jdbc.properties里写入内容如下: driver = orac ...
- 【Python之路】第十一篇--CSS
css CSS是Cascading Style Sheets的简称,中文称为层叠样式表,用来控制网页数据的表现,可以使网页的表现与数据内容分离. 一.css的四种引入方式 1.行内式 行内式是在标记的 ...
- nginx 403
location / { autoindex on; } chown -R www-data:www-data /var/www usermod -a -G www-data rootnano /et ...
- scala优点以及eclipse上安装scala插件
可拓展 (面向对象,函数式编程) 静态类型化 (可检验,安全重构) 兼容JAVA (类库调用,互操作) 支持并发控制 (强计算能力,自定义其他控制结构) 语法简洁 (代码行短,类型推断,抽象控制) 插 ...
- 自定义viewpager的界面切换动画
核心操作: 1.创建一个类实现 android.support.v4.view.ViewPager.PageTransformer 根据 position 实现判断哪个界面进行界面切换动画 publi ...
- Linux服务器rsync自动备份
一.在 server 端配置 1. 编辑配置文件 #vi /etc/rsyncd.conf 添加下面的配置参数: uid = nobody # 该选项指定当该模块传输文件时守护进程应该具有的uid.默 ...
- ACdream 1020 The Game about KILL
找规律. 11 3 1 3 5 7 1 3 5 7 9 11 13 15 ....... #pragma comment(linker, "/STACK:1024000000,1024000 ...