c++とflashを併用してゲームサーバを書く
3582 ワード
c++flashはよく知られているものですが、自分で自分のゲームサーバーを作ることを考えたことがありますか?実は入門段階は本当に人々が想像していたほど難しくありません.後でスレッドやサーバ最適化などのコンテンツがありますが、しかしそれらはすべて后の话で、あなた自身の补给と进歩を通じてすべて克服することができると信じて、あなたは自由にコンパイラを选ぶことができますここはvcをダウンロードしたくないためです(大きすぎます)だからもう一つの業界でも有名なコンパイラDevを紹介します.ネット上でクライアントにダウンロードできるのはもちろんflashです.)まずDevに新しいプロジェクトを新規作成します.私のところはSocketと申します.それからConsoleを生成します(コンソールアプリケーションはここが最初なので些細なグラフィックインタフェースを避けてこれを選択すれば十分です).コンパイラが対応するコードを生成しているのがわかります
基本的なフレームワークは、これらの骨がすでに存在していることです.今、肉を追加します.まず、ネットワークプログラミングに必要な頭ファイルに参加します.
に続く
crtl+f 9でコンパイルするのはおかしいですが、どうして間違いがありませんか?下のコンパイラはツールでコンパイルオプションを選択して下の接続コマンドラインにチェックを入れて下に入力する必要があります-lwsock 32はokをコンパイルしてcrtl+f 10プログラムで実行しました今flashを書きますflash私は簡単に興味のある友达を持ってよく研究しています:)flash AS 3のプロジェクトを創立します
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフでもjavaで以上のコードを書くのはもっと簡単ですね:)そして、私がjavaの簡単なsocketを書いているのを信じないのが分かりやすいです.
#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+f 9でコンパイルするのはおかしいですが、どうして間違いがありませんか?下のコンパイラはツールでコンパイルオプションを選択して下の接続コマンドラインにチェックを入れて下に入力する必要があります-lwsock 32はokをコンパイルしてcrtl+f 10プログラムで実行しました今flashを書きますflash私は簡単に興味のある友达を持ってよく研究しています:)flash AS 3のプロジェクトを創立します
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を書いているのを信じないのが分かりやすいです.