static void Main(string[] args) { Client server = new Client("127.0.0.1", 10001); server.Connect += Server_Connect; server.Receive += Server_Receive; server.Exit += Server_Exit; server.FileInfoReceive += Server_FileInfoReceive; server.Start(); NetworkFile file = new NClientFile(server, "./3.png"); file.Process += delegate(NetworkFile file56) { Console.WriteLine("보낸 바이트" + ((double)file56.FinishByte / (double)file56.FileSize)); }; JObject json = new JObject(); json["himessage"] = "ㅋㅋ"; Console.WriteLine("서버로 요청을 해볼게!"); server.SendFile(json, file); while (true) { System.Threading.Thread.Sleep(1000); } }
void OnFiles(List <string> aFiles, POINT aPos) { foreach (string path in aFiles) { NClientFile file = new NClientFile(NetworkMain.server, path); SocketFile.NewFile(file); NetworkMain.server.SendFile(new JObject(), file); } // do something with the dropped file names. aPos will contain the // mouse position within the window where the files has been dropped. //Debug.Log("Dropped "+aFiles.Count+" files at: " + aPos + "\n"+ // aFiles.Aggregate((a, b) => a + "\n" + b)); }
public void Update() { while (true) { String message = null; JObject json = null; try { message = SR.ReadLine(); if (message == null) { break; } try { json = JObject.Parse(message); if (json["type"] == null) { throw new Exception(); } } catch (Exception e) // 파싱중 에러 발생시 올바르지 않은 패킷이라 판단하고 소켓연결을 종료시킨다. { Dispose(); return; } if (Receive != null) { if ((int)json["type"] == -1) // 처음에 물어보는 과정 (클라 -> 서버 업로드 요청, 서버 -> 클라 다운로드 명령) { NetworkFile file = null; if (this is Client) // 클라이언트단에서 처리하는 메세지 { file = new NClientFile((Client)this, (JObject)json["file"]); } else if (this is UserSocket) // 서버단에서 처리하는 메세지 { file = new NServerFile(this, (JObject)json["file"]); } FileInfoReceive?.Invoke(this, (JObject)json["message"], file); } else if ((int)json["type"] == -2) { if (this is Client) // 클라이언트단에서 처리하는 메세지 { Console.WriteLine((int)json["no"]); NClientFile file = (NClientFile)NetworkFile.NetFiles[(int)json["no"]]; Console.WriteLine(json.ToString()); file.ServerKey = (int)json["serverkey"]; Console.WriteLine((int)file.ServerKey); file.ConnectFileServer(); } //NetworkFile.NetFiles[(int)json["no"]].StartInSender((int)json["serverkey"]); } else { Receive(this, json); } } } catch (IOException e) // e.InnerException.GetType().Name == SocketException { // 소켓통신에서 오류가 발생할경우 커넥션 강제 종료 (Ex 연결이 끊긴경우) break; } } Dispose(); }