[英]WIFI Direct IP Address issue
我已經檢查並發現問題是IP地址已分配給connectionEndpointPair帶有wi-fi直接網絡適配器的IP,我不知道如何在該特定IP上打開端口,該IP與當我從PC上ping它時,Windows正在偵聽端口5009,並在使用wi-fi ip時建立了連接,但是當我使用wi-fi直接ip地址時,我遇到了問題
設備和Windows 8.1應用程序之間的wi-fi直接連接是可以的,然后我正在等待套接字連接,但沒有發生,這可能是什么問題?
我在Visual Studio上收到錯誤消息:
無法建立連接,因為目標計算機主動拒絕了該連接。 (來自HRESULT的異常:0x8007274D)
在Windows端,我正在使用以下代碼:
String deviceSelector = WiFiDirectDevice.GetDeviceSelector();
DeviceInformationCollection deviceCollection = await DeviceInformation.FindAllAsync(deviceSelector);
if(deviceCollection.Count > 0)
{
try
{
wfdDevice = await WiFiDirectDevice.FromIdAsync(deviceCollection[0].Id);
wfdDevice.ConnectionStatusChanged +=ConnectionStatusChangedNotficationHandler;
var endpointPairs = wfdDevice.GetConnectionEndpointPairs();
EndpointPair connectionEndpointPair = endpointPairs[0];
try
{
connectionEndpointPair.RemoteServiceName = "5009";
StreamSocket socket = new StreamSocket();
await socket.ConnectAsync(connectionEndpointPair);
string s = "hello";
}catch (Exception err)
{
string s = err.Message;
s = err.StackTrace;
}
}
catch (Exception err)
{
string error = err.Message;
}
在android方面,我正在使用以下代碼:
private void initiateClientSocket(String hostAddress) {
int timeout = 10000;
int port = 5009;
InetSocketAddress socketAddress
= new InetSocketAddress(hostAddress, port);
try {
Socket socket = new Socket();
socket.bind(null);
socket.connect(socketAddress, timeout);
} catch (IOException e) {
Log.e(TAG, "IO Exception.", e);
}
// TODO Start Receiving Messages
}
從android方面,我得到:
java.net.UnknownHostException:主機未解析:我的ip
可以幫忙嗎
謝謝 :)
即使您在Android手機和Windows計算機之間建立了直接的WIFI連接,也需要服務器和客戶端來進行tcp連接。
我不知道您的應用程序的用途,但我認為Windows計算機是服務器的更好選擇。 因此,在計算機上,您應該打開該端口的偵聽器,而不是連接到套接字。
與所選StreamSocket
類相關的服務器類是StreamSocketListener
。 您可以在此處找到文檔: http : //msdn.microsoft.com/zh-cn/library/windows/apps/windows.networking.sockets.streamsocketlistener.aspx
本文檔中還有一段關於典型的操作順序:
我還沒有使用這個特殊的類,但是TCP的基礎知識總是一樣的...
我不太了解您在Window上的代碼,但是猜測以下代碼有問題
connectionEndpointPair.RemoteServiceName = "5009";
似乎“ RemoteServiceName”與端口號5009無關。請檢查結構/對象“ connectionEndpointPair”中的其他字段並進行正確的設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.