此篇文章为roading所有,欢迎转载,但请注明原处. 看见还有很多人在研究flash的socket,其中经常会出现一些问题,所以将我以前写的一个程序代码拿出来给大家参考... 服务器端程序请参考:http://www.roading.net/blog/article.asp?id=78 C#源代码
这是flash的代码,代码比较简单,没有写什么注释. //---------------------------------------------------------------------------------------------------------------- /* http://www.roading.net/blog 代码由roading编写...欢迎测试...
*/ function OnConnect(success) { if (success) { trace("Connection succeeded!"); isConn = true; socket.send("CONN|"+userNameIt.text); userList.addItem(’所有人’); } else { trace("Connection failed!"); } } function OnData(src) { // 此处是您的语句 trace(src) strArray = src.split(’|’); temp = strArray[0]; trace(strArray.length+’\t’+strArray); if (temp == ’LIST’) { userList.removeAll(); for (i=1; i<strArray.length; i++) { userList.addItem(strArray[i]); } } else if (temp == ’JOIN’) { userList.addItem(strArray[1]); smgText.text += strArray[1] + ’进来了···’+’\n’; } else if (temp == ’CHAT’) { smgText.text += strArray[1]+’\n’; } else if (temp == ’PRIV’) { smgText.text += strArray[strArray.length-1]+’\n’; break; } else if (temp == ’GONE’) { for (var i = 0; i<userList.length; i++) { if (userList.getItemAt(i).label == strArray[1]) { smgText.text += userList.getItemAt(i).label + ’离开了···’+’\n’; userList.removeItemAt(i); } } } else if (strArray[1] == ’CHAT’) { smgText.text += strArray[2]+’\n’; } temp = ""; smgText.vPosition = smgText.maxVPosition; }
connectBtn.onRelease = function() { socket = new XMLSocket(); socket.onConnect = OnConnect; socket.onData = OnData; // if (!socket.connect("192.168.0.132", 9050)) { trace("Connection failed!"); } }; ///////////////////////////////////////// sendMsgBtn.onRelease = function() { if (msgIt.text != ’’) { if (userList.selectedItem == undefined || userList.selectedItem.label == ’所有人’ || userList.selectedItem.label == userNameIt.text) { socket.send("CHAT|"+userNameIt.text+’ 说:’+msgIt.text); } else if (!privateCheckBox.selected) { socket.send("CHAT|"+userNameIt.text+’ 对 ’+userList.selectedItem.label+’ 说:’+msgIt.text); } else { socket.send("PRIV|"+userNameIt.text+’|’+userList.selectedItem.label+’|’+userNameIt.text+’ 悄悄的对 ’+userList.selectedItem.label+’ 说:’+msgIt.text); } } msgIt.text = ’’; }; disconnectBtn.onRelease = function() { isConn = false; socket.send("GONE|"+userNameIt.text); |