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模 ...
随机推荐
- ccfZ字形扫描
问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z字形扫描的过程如下图所示: 对于下面的4×4的矩阵, 1 5 3 9 3 7 5 ...
- C++中的构造函数,拷贝构造函数,赋值函数
C++中一般创建对象,拷贝或赋值的方式有构造函数,拷贝构造函数,赋值函数这三种方法.下面就详细比较下三者之间的区别以及它们的具体实现 1.构造函数 构造函数是一种特殊的类成员函数,是当创建一个类的对象 ...
- Excel 版本对应
(1) 1985年:Excel 1.0 (2) 1993年:Excel 5.0——Office 4.2 (3) 1995年:Excel 7.0(Excel 95)——Office 95 (4) 199 ...
- ORACLE workflow审批界面显示附件信息和附件的下载链接(转)
原文: ORACLE workflow审批界面显示附件信息和附件的下载链接 EBS获取附件URL 代码如下: CREATE OR REPLACE PACKAGE cux_attachment_util ...
- bzoj1083
题解: 简单最小生成树 代码: #include<bits/stdc++.h> using namespace std; #define y1 ____y1 ; int z[N],f[N] ...
- 软工作业No.3--团队作业:甜美女孩出击!
队名:甜美女孩 队员包括: 姓名 学号 身份 曾祎祺 3216005211 队长 邓画月 3216005212 队员 何颖琪 3216005213 队员 梁沛诗 3216005214 队员 梁子君 3 ...
- python 复制/移动文件
用python实现将某代码文件复制/移动到指定路径下. 场景例如:mv ./xxx/git/project1/test.sh ./xxx/tmp/tmp/1/test.sh (相对路径./xxx/tm ...
- Beand的高级特征
Spring程序中,Java Bean一般与Spring是非耦合的,不会依赖于Spring类库.这也是Spring的优点. 实现BeanNameAware接口获取本bean的id属性 BeanName ...
- SaltStack一键部署负载均衡和高可用
一.负载均衡的部署 server1 haproxy (调度器) server2 apache server3 nginx 1)在server1上首先安装salt-minion服务.并 ...
- KBMMW 的日志管理器
kbmmw 4.82 最大的新特性就是增加了 日志管理器. 新的日志管理器实现了不同类型的日志.断言.异常处理.计时等功能. 首先.引用kbmMWLog.pas 单元后,系统就默认生成一个IkbmMW ...