通过NSD_SERVICE连接
其中一台设备作为服务端,需要向NSD_SERVICE注册服务,另一台设备作为客户端,通过NSD_SERVICE搜索服务,连接服务,连接之后就可以通过Socket通信了。
向NSD_SERVICE注册服务:
NsdServiceInfo serviceInfo = new NsdServiceInfo();
serviceInfo.setServiceName("NsdChat");
serviceInfo.setServiceType("_http._tcp.");
serviceInfo.setPort(SERVER_PORT);
nsdManager.registerService(
serviceInfo, NsdManager.PROTOCOL_DNS_SD, new NsdManager.RegistrationListener() {
@Override
public void onRegistrationFailed(NsdServiceInfo serviceInfo, int errorCode) {
Log.e(TAG, "nsdRegist onRegistrationFailed: " + errorCode);
}
@Override
public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) {
Log.e(TAG, "nsdRegist onUnregistrationFailed: " + errorCode);
}