2012-03-05 20 views
-1

私はこのデータを送信するために、xのWP7画面の座標をPCサーバーに送信しますが、それは動作しませんが、デバッガは正常に動作しています。 WP7クライアント側エラー送信データ

TransformGroup transformG; 
    TranslateTransform translation; 
    double DeltaX, DeltaY; 

    private Socket client_socket; 
    private delegate void mydelegate(byte[] buffer); 
    private delegate void ShowMessagedelegate(string MSG); 
    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 


     this.ManipulationDelta += new EventHandler<ManipulationDeltaEventArgs>(MainPage_ManipulationDelta); 
     transformG = new TransformGroup(); 
     translation = new TranslateTransform(); 
     transformG.Children.Add(translation); 
    } 
    void MainPage_ManipulationDelta(object sender, ManipulationDeltaEventArgs e) 
    { 

     DeltaX = e.DeltaManipulation.Translation.X; 
     DeltaY = e.DeltaManipulation.Translation.Y; 

    } 
    void StartSending() 
    { 
      try 
      { 
       SocketAsyncEventArgs socketEventArgs = new SocketAsyncEventArgs(); 
       byte[] buffer = Encoding.UTF8.GetBytes(DeltaX.ToString()+"/"+DeltaY.ToString()); 
       socketEventArgs.SetBuffer(buffer, 0, buffer.Length); 
       client_socket.SendToAsync(socketEventArgs); 
      } 
      catch (Exception) { } 
    } 


    void Conncet(string IP_Address) 
    { 

     client_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
     SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs() 
     { 
      RemoteEndPoint = new IPEndPoint(IPAddress.Parse(IP_Address), 4532) 
     }; 
     socketEventArg.Completed += OnConncetCompleted; 
     client_socket.ConnectAsync(socketEventArg); 
    } 





    private void ConnectBTN_Click(object sender, RoutedEventArgs e) 
    { 
     Conncet(IPAddress_TXT.Text); 
     Thread th = new Thread(new ThreadStart(StartSending)); 
    } 

ため、このコードを示すエラーと

[DllImport("user32.dll")] 
    static extern bool GetCursorPos(ref Point lpPoint); 
public Int32 pX, pY; 
Socket SenderSocket; 
void StartReceiving() 
    { 
     byte[] response = new byte[10000]; 
     SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs(); 
     socketEventArg.Completed += OnReceiveCompleted; 
     socketEventArg.SetBuffer(response, 0, response.Length); 
     SenderSocket.ReceiveAsync(socketEventArg); 
    } 

    void OnReceiveCompleted(object sender, SocketAsyncEventArgs e) 
    { 
     //this.Dispatcher.BeginInvoke(new mydelegate(ModifCursorPos), e.Buffer); 
     this.BeginInvoke(new mydelegate(ModifCursorPos), e.Buffer); 
    } 
    private void ModifCursorPos(byte[] buffer) 
    { 
     try 
     { 
      MemoryStream ms = new MemoryStream(buffer); 
      string chaine = Encoding.UTF8.GetString(buffer); 
      string[] pos = chaine.Split('/'); 

       pX = Convert.ToInt32(pos[0]); 
       pY = Convert.ToInt32(pos[1]); 
       //posX.Text = pX.ToString(); 
       //posY.Text = pY.ToString(); 

      ms.Close(); 

      this.Cursor = new Cursor(Cursor.Current.Handle); 
      Cursor.Position = new Point(Cursor.Position.X + pX, Cursor.Position.Y + pY); 
      posX.Text = Cursor.Position.X.ToString();//try to get X in textbox 
      posY.Text = Cursor.Position.Y.ToString();//try to get Y in textbox 
     } 
     catch (Exception) { } 
     finally 
     { 
      StartReceiving(); 
     } 
    } 

が、私はその多分ないデータを送ったり、いない理由を知っていないサーバ側のため、このコードはありませんそれを受け取る plzは持っていれば、これはとてもTRあなたの例外を隠し続けるだろう と感謝

+0

'catch(Exception){}'は簡単にあなたの問題をマスキングできます。それをしないでください。 –

+0

だから私は何をする????? – juste3alfaza

答えて

0
 try 
     { 
      SocketAsyncEventArgs socketEventArgs = new SocketAsyncEventArgs(); 
      byte[] buffer = Encoding.UTF8.GetBytes(DeltaX.ToString()+"/"+DeltaY.ToString()); 
      socketEventArgs.SetBuffer(buffer, 0, buffer.Length); 
      client_socket.SendToAsync(socketEventArgs); 
     } 
     catch (Exception) { } 

を助けますyはこれが問題を引き起こしているかを把握助け、あなたが例外を取得した場合、その後、ここでそれを投稿し、我々はまた、あなたがより

この1つの 試みについても同じことを助けることができます

 try 
     { 
      SocketAsyncEventArgs socketEventArgs = new SocketAsyncEventArgs(); 
      byte[] buffer = Encoding.UTF8.GetBytes(DeltaX.ToString()+"/"+DeltaY.ToString()); 
      socketEventArgs.SetBuffer(buffer, 0, buffer.Length); 
      client_socket.SendToAsync(socketEventArgs); 
     } 
     catch (Exception e) { Console.Write(e.Tostring()); } 

にこれを変更します { MemoryStream ms =新しいMemoryStream(バッファ)。 string chaine = Encoding.UTF8.GetString(buffer); string [] pos = chaine.Split( '/');

  pX = Convert.ToInt32(pos[0]); 
      pY = Convert.ToInt32(pos[1]); 
      //posX.Text = pX.ToString(); 
      //posY.Text = pY.ToString(); 

     ms.Close(); 

     this.Cursor = new Cursor(Cursor.Current.Handle); 
     Cursor.Position = new Point(Cursor.Position.X + pX, Cursor.Position.Y + pY); 
     posX.Text = Cursor.Position.X.ToString();//try to get X in textbox 
     posY.Text = Cursor.Position.Y.ToString();//try to get Y in textbox 
    } 
    catch (Exception) { } 
+0

私は例外を追加し、私はそれを表示するためにビデオを作成します http://www.youtube.com/watch?v=K7N0Ls__qm0&feature=youtu.be – juste3alfaza

+0

魔女はエラーを投げつけましたか? – Shredder2500

+0

WP7クライアント側 – juste3alfaza