c 部分
- ///main.cpp
- #include <iostream> ///加载需要的头文件 关于输入输出
- #include <winsock2.h> ///socket套接字头文件
- using namespace std; ///使std命名空间全部展开不用每次在写std::前缀了
- wsadata wsadata;//wsadata 是一个结构 说明需要装载的dll的版本相关信息
- socket listeningsocket;//监听连接的socket
- socket newconnection;//已经连接的socket
- sockaddr_in serveraddr;//服务器的相关信息
- sockaddr_in clientaddr;//连接端的相关信息
- char message[256];//用来读取客户的发送来的消息
- int main(int argc, char *argv[]) ///程序的入口
- {
-
- //装载dll文件
- wsastartup(makeword(2,2),&wsadata);
- //创建一个新的嵌套字来监听客户端连接,使用tcp协议
- listeningsocket = socket(af_inet,sock_stream,ipproto_tcp);
- //建立sockaddr_in结构,为bind做好准备
- serveraddr.sin_family = af_inet;
- serveraddr.sin_port = htons(30006);
- serveraddr.sin_addr.s_addr = htonl(inaddr_any);
- bind(listeningsocket,(sockaddr*)(&(serveraddr)),sizeof(serveraddr));
- listen(listeningsocket,5);
//开始监听,最多可以处理的连接请求为5
- int clientaddrlen = sizeof(struct sockaddr_in);
//struct sockaddr_in结构的大小
- //****等待连接,一直阻塞到获得连接
- //返回连接的socket
- //参数1 被绑定的socket
- //参数2 当发生请求时被填充的结构
- //参数3 第2个参数的结构大小 这里必须给的是地址
- newconnection = accept(listeningsocket,(sockaddr*)(&clientaddr),&clientaddrlen);
- //****发送数据****
- //参数1是已连接的socket
- //参数2是一个字符串
- //参数3是字符串的大小
- //参数4是状态默认为0
- send(newconnection,"socket is ok\0",(int)strlen("socket is ok\0")1,0);
- //****接收数据****
- //参数1是已连接的socket
- //参数2是一个char数组
- //参数3是传送中最多所能容纳的字节数
- //参数4是状态默认0
- recv(newconnection,message,256,0);
- cout<<"flash穿过的参数是"<<message<<endl;
- //关闭socket
- closesocket(newconnection);
- closesocket(listeningsocket);
- wsacleanup();
- system("pause"); ///让屏幕出现按任意键结束的提示没有此句程序运行直接退出
- return exit_success; ///返回
- }
设置编译环境:
[devc ]工具->编译选项,然后在下边的在连接命令行加入打勾,输入-lwsock32,
[code::block]中直接在linker libraries 里面添加wsock32
as3部分
- ///main.as
- package
- {
- import flash.utils.bytearray;
- import flash.net.socket;
- import flash.events.progressevent
- import flash.display.sprite;
-
- public class client extends sprite
- {
- private var socket:socket = new socket();
- private var bytearray:bytearray = new bytearray();
- public function client()
- {
- socket.connect("127.0.0.1",30006);
- socket.addeventlistener( progressevent.socket_data, onsocketdata );
- }
- function onsocketdata(e:progressevent ):void
- {
- socket.readbytes(bytearray);
- trace("c 过来的参数:"bytearray);
- socket.writeutfbytes("good bye");
- socket.flush();
- }
- }
- }
阅读(10341) | 评论(1) | 转发(0) |