- 浏览: 1454643 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
c++ flash都是人们耳熟能详的东西了 有没有想过自己动手来做一个属于自己的游戏服务器?
其实 入门阶段真的不会像人们想象的那末难。虽然后来会有线程,服务器优化等内容,但是那些都是后话了 相信经过您自己的补给和进步 都会一一克服的
您可以自由选择编译器 这里由于不想下载vc(太大了) 所以介绍另一款也在业界比较知名的编译器 Dev 可以在网上下载到 客户端自然就是flash了:)让我们动手把
先在Dev新建一个工程 我这里叫Socket 然后生成Console(控制台应用程序 这里因为是开始 所以避开了琐碎的图形界面 选择这个足以) 然后就可以看见编译器为我们生成了相应的代码
#include <iostream> //加载需要的头文件 关于输入输出
using namespace std;//使std命名空间全部展开 不用每次在写std::前缀了
int main(int argc, char *argv[]) //程序的入口
{
system("PAUSE");//让屏幕出现按任意键结束的提示 没有此句程序运行直接退出
return EXIT_SUCCESS;//返回
}
好的 基本的框架就是这些 骨头已经有了 现在我们来添加肉
首先我们加入网络编程需要的头文件
#include <winsock2.h>
然后在main中申请几个变量
WSADATA wsaData;//WSADATA 是一个结构 说明需要装载的dll的版本相关信息
SOCKET listeningSocket;//监听连接的socket
SOCKET newConnection;//已经连接的socket
SOCKADDR_IN serverAddr;//服务器的相关信息
SOCKADDR_IN clientAddr;//连接端的相关信息
char message[256];//用来读取客户的发送来的消息
接着
//装载dll文件
WSAStartup(MAKEWORD(2,2),&wsaData);
//创建一个新的嵌套字来监听客户端连接 使用TCP协议
listeningSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
//建立一个SOCKADDR_IN结构,结构告知bind监听30006端口上所有的连接
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(30006);
serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
//使用bind将这个地址信息和嵌套字关联起来
bind(listeningSocket,(SOCKADDR*)(&(serverAddr)),sizeof(serverAddr));
//开始监听喽 最多可以处理的连接请求为5
listen(listeningSocket,5);
//struct sockaddr_in结构的大小
int ClientAddrLen = sizeof(struct sockaddr_in);
//等待连接 无连接则无限等待
//返回连接的socket
//参数1 被绑定的socket
//参数2 当发生请求时被填充的结构
//参数3 第2个参数的结构大小 这里必须给的是地址
newConnection = accept(listeningSocket,(SOCKADDR*)(&clientAddr),&ClientAddrLen);
//好了 到这里我们知道flash不连接是不会往下运行的 所以我们想一下
//当flash连接后我们给他返回个"socket is ok"得字样 然后再接受一次
//flash传递的参数 程序就退出
//给flash发送参数 第一个是刚才连接的socket 第2个是参数
//第3个是参数的大小 第4个是状态 默认0
send(newConnection,"socket is ok\0",(int)strlen("socket is ok\0")+1,0);
//等待接受的数据 注意这里同样是没有就会等待
//第一个是方才连接的soclet 第2个是一个char得数组
//第3个是传送得最多容纳 第4个状态 默认0 这2状态一般不用 就设定为0
recv(newConnection,message,256,0);
//输出传过来的内容
cout<<"flash穿过的参数是"<<message<<endl;
//最后关闭socket和退出
closesocket(newConnection);
closesocket(listeningSocket);
WSACleanup();
按crtl+f9编译 奇怪 怎莫出错了??原来需要设置下编译器在工具选择编译选项 然后在下边的在连接命令行加入打勾 在下边输入-lwsock32
在编译 ok
然后按crtl+f10 程序运行了
现在来写flash把 flash我就简单带过了 有兴趣的朋友在仔细研究把:)
建立一个flash AS3得项目
import flash.utils.ByteArray;
import flash.net.Socket;
var socket:Socket = new Socket();
socket.connect("127.0.0.1",30006);
socket.addEventListener( ProgressEvent.SOCKET_DATA, onSocketData );
var byteArray:ByteArray = new ByteArray();
function onSocketData(event:ProgressEvent ):void {
socket.readBytes(byteArray);
trace("c++过来的参数:"+byteArray);
socket.writeUTFBytes("good bye");
socket.flush();
}
呼呼 累死了 是不是很简单呢??
不过用java书写以上代码 还要更简单呢:) 而且更容易明白 不信我就在写一篇java得简单的socket 比较下拉:) (准备java和这个同步进行:)每次写2种的 大家哪个熟悉就参考哪个吧)
下次再继续拉:) 大家加油
发表评论
-
haXe是什么?
2016-01-04 10:50 1086haXe是什么? haXe是一种编程语言,官方网站在 ... -
用EA类图生成AS3代码
2008-10-15 16:18 2730EA(Enterprise Architect)是支持多种流 ... -
变形实例-source
2008-10-15 12:46 1562涂抹原理 橡皮擦原理 import flash.geom.P ... -
actionScript 3.0 图片裁剪及旋转
2008-10-10 12:54 5969package com.wdxc { /** ... -
Flash(AS3)读取Excel文件
2008-10-09 13:29 5193var excelXml:XML; var loader=ne ... -
AS3 Loading的制作方法
2008-10-09 13:28 6085AS2的时候做LOADING有很多种方法,做起来也得心应手可是 ... -
让"Flash" 写文件(AS3)
2008-09-11 16:23 1809目前,出于安全考虑Flash不支持写文件的操作,在AS3的A ... -
AS3 中的 拖动 及 碰撞 检测
2008-09-11 16:11 2951没有press和release事件 hitTest()被分尸 ... -
As和js通信问题完全解析(解决addcallback失效的问题)
2008-09-11 16:10 3667as和js通信最早用的是fscommand,这个我就不说了,老 ... -
Flash CS3制作Fla形式的组件
2008-06-16 14:45 1405本文为大家介绍如何制作Flash CS3中的[*.fla]形 ... -
AS3图像处理之剪裁、动态选取
2008-06-15 23:25 2263和师傅写C#写的思维混乱,方法变量几乎第一反应就是大写,习惯都 ... -
从界面入手 划分类
2008-06-15 19:25 1298如何将一个项目细化成各个类呢? 1 从一个项目的界面入手,按照 ... -
AS3-DisplayEffect组件
2008-06-14 20:40 2091[AS3]DisplayEffect组件【组件版本】:0.5【 ... -
KTooltip 工具提示组件
2008-06-14 20:38 1047发布一个小工具KTooltip 。这是0.9beta版,出发日 ... -
AS3.0写的一个滚动条【缓动效果】
2008-06-13 16:10 6402package { import flash.d ... -
一个简单的文本滚动条类 as3
2008-06-13 16:04 4404最近一直做会议与AS3有关项目今天花了点时间写了一个可以选择套 ... -
自定义滚动条类
2008-06-13 16:01 2099在平常的开发中,经常需要用到滚动条,今天将滚动条类整理了下,有 ... -
AS3加载机制
2008-06-13 15:03 2224摸了好一阵子,才弄明白AS3.0的加载机制.还是坚持自己的原则 ... -
写了一个Flash的Transition
2008-06-11 10:36 1758写了一个Flash的Transition package { ... -
JavaScript与ActionScript函数相互调用
2008-06-06 15:07 22881、在JavaScript中调用Flex( ...
相关推荐
Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压! 第1章 窗体与界面设计 1.1 菜单应用实例 实例001 在系统菜单中添加菜单项 实例002 带图标的程序菜单 实例003...
cc实例226 对SQLServer数据库进行录入和提取多媒体文件 cc实例227 对SQLcServer数据库进行录入和存储Word文档 8.10 数据备份恢复 cc实例228 Access数据库备份与还原 cc实例229 SQLcServer...
Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压! 第1章 窗体与界面设计 1.1 菜单应用实例 实例001 在系统菜单中添加菜单项 实例002 带图标的程序菜单 实例003...
cc实例226 对SQLServer数据库进行录入和提取多媒体文件 cc实例227 对SQLcServer数据库进行录入和存储Word文档 8.10 数据备份恢复 cc实例228 Access数据库备份与还原 cc实例229 SQLcServer...
119 利用Image控件制作小动画 cc实例120 透明的Flash动画 cc实例121 播放GIF动画 cc实例122 播放AVI动画 cc实例123 播放VCD 4.2 制作与播放音频 cc实例124 可以选择播放曲目的CD播放器 cc实例125 MP3...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...