`
wangangie8
  • 浏览: 43367 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Flex 与 c# socket 完整实例:聊天室

 
阅读更多

  ===客户端===
  需要建一个公用的as class:(package NetStar   ->  class MySocket)
  MySocket.as package NetStar { import flash.net.Socket; public class MySocket { public static var CurSocket : Socket = new Socket(); public function MySocket() { } } } myNewTest3.MXML       width="351"/> width="413.5"/>   ===服务端===
  c# 应用台程序 using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; using System.Threading; namespace ConsoleApplication2 { class Program { private static System.Collections.ObjectModel.Collection Sockets = new System.Collections.ObjectModel.Collection(); static void Main(string[] args) { Socket listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress hostIP = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0] ; int port = 8888; //监听端口 IPEndPoint endPoint = new IPEndPoint(hostIP, port); //获得IP,如:192.168.1.169 listenSocket.Bind(endPoint); listenSocket.Listen(100); //连接上限 System.Console.WriteLine("即时消息服务[" + hostIP + "]已启动。"); while (true) { Socket acceptSocket = listenSocket.Accept(); Program.Sockets.Add(acceptSocket); string policy = "\0"; acceptSocket.Send(System.Text.ASCIIEncoding.UTF8.G etBytes(policy)); Thread thread = new Thread(new ParameterizedThreadStart(Program.Receive)); thread.Start(acceptSocket); } } private static void Receive(object value) { Socket acceptSocket = (Socket)value; while (true) { byte[] buffer = new byte[1024]; try { acceptSocket.Receive(buffer); foreach (Socket item in Program.Sockets) { item.Send(buffer); } } catch { break; } } Program.Sockets.Remove(acceptSocket); } } }  
  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics