c实现windows socket
服务端代码:
/*
* testSocketService.c
*
* Created on: 2012-8-16
* Author: 皓月繁星
*/
#include <WINSOCK2.H>
#include <stdio.h> #define PORT 5150
#define MSGSIZE 1024 #pragma comment(lib, "ws2_32.lib") int main()
{
WSADATA wsaData;
SOCKET sListen;
SOCKET sClient;
SOCKADDR_IN local;
SOCKADDR_IN client;
char szMessage[MSGSIZE];
int ret;
int iaddrSize = sizeof(SOCKADDR_IN);
WSAStartup(0x0202, &wsaData); sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); local.sin_family = AF_INET;
local.sin_port = htons(PORT);
local.sin_addr.s_addr = htonl(INADDR_ANY);
bind(sListen, (struct sockaddr *) &local, sizeof(SOCKADDR_IN)); listen(sListen, 1); sClient = accept(sListen, (struct sockaddr *) &client, &iaddrSize);
printf("Accepted client:%s:%d\n", inet_ntoa(client.sin_addr),
ntohs(client.sin_port)); while (TRUE) {
ret = recv(sClient, szMessage, MSGSIZE, 0);
szMessage[ret] = '\0';
printf("Received [%d bytes]: '%s'\n", ret, szMessage);
}
return 0;
}
客户端代码
/*
* testSocketClient.c
*
* Created on: 2012-8-16
* Author: 皓月繁星
*/
#include <WINSOCK2.H>
#include <stdio.h> //定义程序中使用的常量
#define SERVER_ADDRESS "127.0.0.1" //服务器端IP地址
#define PORT 5150 //服务器的端口号
#define MSGSIZE 1024 //收发缓冲区的大小
#pragma comment(lib, "ws2_32.lib") int main()
{
WSADATA wsaData;
//连接所用套节字
SOCKET sClient;
//保存远程服务器的地址信息
SOCKADDR_IN server;
//收发缓冲区
char szMessage[MSGSIZE];
//成功接收字节的个数
int ret; // Initialize Windows socket library
WSAStartup(0x0202, &wsaData); // 创建客户端套节字
sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //AF_INET指明使用TCP/IP协议族;
//SOCK_STREAM, IPPROTO_TCP具体指明使用TCP协议
// 指明远程服务器的地址信息(端口号、IP地址等)
memset(&server, , sizeof(SOCKADDR_IN)); //先将保存地址的server置为全0
server.sin_family = PF_INET; //声明地址格式是TCP/IP地址格式
server.sin_port = htons(PORT); //指明连接服务器的端口号,htons()用于 converts values between the host and network byte order
server.sin_addr.s_addr = inet_addr(SERVER_ADDRESS); //指明连接服务器的IP地址
//结构SOCKADDR_IN的sin_addr字段用于保存IP地址,sin_addr字段也是一个结构体,sin_addr.s_addr用于最终保存IP地址
//inet_addr()用于将 形如的"127.0.0.1"字符串转换为IP地址格式
//连到刚才指明的服务器上
connect(sClient, (struct sockaddr *) &server, sizeof(SOCKADDR_IN)); //连接后可以用sClient来使用这个连接
//server保存了远程服务器的地址信息
while (TRUE) {
printf("Send:");
//从键盘输入
gets(szMessage); //The gets() functionreads characters from stdin and loads them into szMessage
// 发送数据
send(sClient, szMessage, strlen(szMessage), ); //sClient指明用哪个连接发送; szMessage指明待发送数据的保存地址 ;strlen(szMessage)指明数据长度
} // 释放连接和进行结束工作
closesocket(sClient);
WSACleanup();
return ;
}
http://www.docin.com/p-111227070.html
Java mina和c++ ace做socket长连接 测试报告:
http://www.iteye.com/problems/44682
c++ RTMP server 做流媒体的
流媒体研究博客:http://www.cnblogs.com/haibindev
http://www.rtmpd.com/
https://www.google.com.hk/#newwindow=1&q=rtmpc%2B%2B&safe=strict
用RTMP方式:通过NetConnection连接到FMS/Red5服务器,并实时播放服务器的FLV文件,这种方式可以任意选择视频播放点(SEEK()),并不象HTTP方式需要缓存完整个FLV文件到本地才可以任意选择播放点,其优点就是在本地缓存里是找不到这个FLV文件的。其优点就是FLV不会缓存在客户端,FLV的保密性好,其缺点就是消耗服务器资源,连接始终是实时的。
一句话,HTTP方式是本地播放,RTMP方式是服务器实时播放,因需而定。
c实现windows socket的更多相关文章
- 高性能 Windows Socket 组件 HP-Socket v3.0.2 正式发布
HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...
- 高性能 Windows Socket 组件 HP-Socket v3.0.1 正式发布
HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...
- 高性能 Windows Socket 组件 HP-Socket v2.3.1-beta-2 发布
HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...
- 高性能 Windows Socket 组件 HP-Socket v2.3.1-beta-1 发布
HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...
- 高性能 Windows Socket 组件 HP-Socket v2.2.3 正式发布
HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...
- 通用高性能 Windows Socket 组件 HP-Socket v2.2.2 正式发布
HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP ...
- linux tcp/ip编程和windows tcp/ip编程差别以及windows socket编程详解
最近要涉及对接现有应用visual c++开发的tcp客户端,花时间了解了下windows下tcp开发和linux的差别,从开发的角度而言,最大的差别是头文件(早期为了推广尽可能兼容,后面越来越扩展, ...
- 转:Windows Socket五种I/O模型
原文转自: Windows Socket五种I/O模型 Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模 ...
- 【windows socket+TCPserverclient】
Windows Socket+TCPserverclient Winsock是 Windows下套接字标准. Socket套接字基于计算机网络,提供同一系统上不同进程或由局 ...
- Windows Socket五种I/O模型
转载:http://www.cnblogs.com/tianzhiliang/archive/2010/08/31/1813637.html 如果你想在Windows平台上构建服务器应用,那么I/O模 ...
随机推荐
- 37mysql 表操作
创建表 #语法: create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); #注意: 1. 在同一张 ...
- ajax中文乱码问题的总结
ajax中文乱码问题的总结 2010-12-11 22:00 5268人阅读 评论(1) 收藏 举报 ajaxurljavascriptservletcallback服务器 本章解决在AJAX中常见的 ...
- MyBatis Generator自动创建代码
MyBatis Generator自动创建代码 1.首先在eclipse上安装mybatis插件 2.创建一个mavenWeb项目. 3.在resource中写入一个xml,一定要与我得同名 < ...
- kill prefix meta,milli,kilo input
1● meta 超过,改变 2● milli 1/1000 3● kilo 1000
- mobilebone.js-mobile移动web APP单页切换骨架
昨天看到张鑫旭前辈发了一条微博,便互动了下,是他的一个开源移动端框架,没事看看,这是效果
- Amaze UI 发布基于jQuery新版本v2.0.0之web组件
首先Amaze Ui第一版时我收到邮件邀请去试用,去了官网看了下,是基于zepto.js的一个类似bootstrap的响应式框架,提到框架当然是好事,快速开发呗.这词2.0的弃用zepto.js改用j ...
- 读书笔记 C# 控制台应用程序之Main方法浅析
Main方法是C#控制台应用程序和Windows窗体应用程序的入口点.Main方法可以有形参,也可以没有,可以有返回值(int整型),也可以没有.如下定义: 无返回值.无形参的格式: static v ...
- L1-034 点赞
微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持.每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性.本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特 ...
- 使用MyEclipse开发Java EE应用:EJB项目开发初探(下)
你开学,我放价!MyEclipse线上狂欢继续!火热开启中>> [MyEclipse最新版下载] 三.EJB 3.x项目中的持久性支持 当创建EJB 3.x项目时,作为选项您可以添加JPA ...
- <xsd:import>
最近研究wsdl文件发现在生成客户端代码时报错了, WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema): faultCode=OTHE ...