static void Main(string[] args) { Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress serverIP = IPAddress.Parse(globalInfo.ipAddr); int port = globalInfo.port; IPEndPoint ipEndPoint = new IPEndPoint(serverIP, port); socket.Connect(ipEndPoint); //socket.ReceiveAsync(SocketAsyncEventArgs) //Parse将字符串转换为IP地址类型 //IPAddress myIP = IPAddress.Parse("127.0.0.1"); ////构造一个TcpClient类对象,TCP客户端 //TcpClient client = new TcpClient(); ////与TCP服务器连接 //client.Connect(myIP, globalInfo.port); //Console.WriteLine("服务器已经连接...请输入对话内容..."); ////创建网络流,获取数据流 //NetworkStream stream = client.GetStream(); ////读数据流对象 //StreamReader sr = new StreamReader(stream); ////写数据流对象 //StreamWriter sw = new StreamWriter(stream); //Thread th2 = new Thread(SendMsg(sw)); //也可简写为new Thread(ThreadMethod); //Thread th = new Thread(Receive(sr)); //也可简写为new Thread(ThreadMethod); //th.IsBackground = true; //th2.Start(); //启动线程 //th.Start(); //启动线程 //Console.WriteLine("服务器:" + sr.ReadLine()); Thread receiveServerThread = new Thread(new ThreadStart(delegate() { // 接受和显示服务器信息 while (true) { socket.Receive(result); var k = result.ToList <byte>(); byte[] bytes = LengthEncoding.decode(ref k); SocketModel model = (SocketModel)MessageEncoding.decode(bytes); switch (model.command) { case BattleRoomProtocol.OVER_GAME_S: break; case LoginProtocol.LOGIN_SRES: Console.WriteLine("登录完毕"); break; case BattleRoomProtocol.CREATE_ONE_S: Console.WriteLine("房间创建成功"); break; case BattleRoomProtocol.START_TIME_S: Console.WriteLine("得到初始化信息"); var dto = model.getMessage <ReturnDTO>(); RoomDTO room = (RoomDTO)dto.message; roomDTO = room; Console.WriteLine("战斗房间的其他人信息:"); selfInfo = (List <RoomInfoDTO>)roomDTO.map[CommonFieldProtocol.battleRoomBaseSelfInfo]; otherInfo = (List <RoomInfoDTO>)roomDTO.map[CommonFieldProtocol.battleRoomBaseOtherInfo]; Console.WriteLine(otherInfo[0]); Console.WriteLine("战斗房间的自己信息:"); Console.WriteLine(selfInfo[0]); break; default: Console.WriteLine("未知命令"); Console.WriteLine(JsonConvert.SerializeObject(model)); break; } bytes = new byte[20480]; } })); receiveServerThread.Start(); string sendMsg = string.Empty; sendMsg = Console.ReadLine(); while (sendMsg != "" + BattleRoomProtocol.OVER_GAME_S) { switch (sendMsg) { case "login": { Console.WriteLine("准备登录"); var bytes = login(); socket.Send(bytes); //发送数据 } break; case "createroom": { Console.WriteLine("准备创建房间"); var bytes = createBattleRoom(); socket.Send(bytes); //发送数据 } break; case "usecard": { Console.WriteLine("使用卡牌"); var bytes = usecard(); socket.Send(bytes); //发送数据 } break; case "useskill": { Console.WriteLine("使用技能"); var bytes = useskill(); socket.Send(bytes); //发送数据 } break; default: Console.WriteLine("未知命令"); break; } sendMsg = Console.ReadLine(); } // client.Close(); // Console.Read(); }