![](/img/trans.png)
[英]How to send Motion JPEG through internet to Windows phone over TCP
[英]How to send JPG over TCP from one Windows Phone to another? I already managed sending text
如何通過TCP將JPG從一個Windows Phone發送到另一個Windows Phone?
我發現在另一個SO主題(下面)中顯示了如何通過TCP發送文本, 但是如何將JPG轉換為字節並發送它? 大多數jpges都超過4kb如何處理?:
private void sendMessage() {
connectArgs = new SocketAsyncEventArgs { RemoteEndPoint = new DnsEndPoint(localIP, Int32.Parse(port)) };
connectArgs.Completed += connectArgs_Completed;
connection = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
connection.ConnectAsync(connectArgs);
}
void connectArgs_Completed(object sender, SocketAsyncEventArgs e) {
if (e.SocketError == SocketError.Success && firstLoop) {
firstLoop = false;
var sendArgs = new SocketAsyncEventArgs();
var buffer = Encoding.UTF8.GetBytes("MESSAGE STRING" + Environment.NewLine);
sendArgs.SetBuffer(buffer, 0, buffer.Length);
sendArgs.Completed += sendArgs_Completed;
e.ConnectSocket.SendAsync(sendArgs);
} else {
//blad
}
}
您應該閱讀原始圖像數據並將其與特殊的“代碼”或前綴一起發送,然后在接收端將原始圖像數據保存到.jpg文件並顯示。 您可以使用任何文件執行此操作。
TCP不會將數據包的大小限制為4KB,因此對您來說不應該是一個問題。 您只需要使用File.ReadAllBytes
或流讀取器從文件中讀取所有圖像字節,然后將這些字節發送到接收器。
另外,如果您有圖像作為一個對象,你可以使用Marshal.StructureToPtr
在發送端,然后使用Marshal.PtrToStructure
重新創建從已收到的字節的圖像對象,如果你想顯示的圖像直接例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.