socket客户端如何连接服务器端

socket客户端如何连接服务器端,第1张

import javanet;
import javalang;
import javaio;
public class MySocketServer
{

public static void main(String args[]) //throws IOException
{
try{
ServerSocket myServer = new ServerSocket(8018);
Systemoutprintln("正在监听端口:"+myServergetLocalPort());
Socket myClient = null;

boolean flag = true;
String InputMessage = null;
int c;
while(flag)
{
myClient = myServeraccept();
//接收客户端的信息,如果不是Stop就继续监听,加个if判断
DataInputStream dataIn = new DataInputStream(myClientgetInputStream());
//DataInputStream dataIn = new DataInputStream(new BufferedInputStream(myClientgetInputStream()));
OutputStream dataOut = myClientgetOutputStream();

while( (InputMessage = dataInreadLine()) != null )
{
if( InputMessageequals("stop"))
{
flag = false;
break;
}
else
{
Systemoutprintln("从客户端接收到的信息是:"+InputMessage);
//输入:读取至 末尾-1结束,遇到回车'\n'结束:
while((c=Systeminread())!= -1)
{
dataOutwrite((byte)c);
if( c== '\n')
{
dataOutflush();
break;
}

}

}
}
dataInclose();
dataOutclose();
myClientclose();
}
myServerclose();
}
catch(Exception e)
{
Systemoutprintln(egetMessage());
}

}

}
客户端:
import javaio;
import javalang;
import javanet;
public class MySocketClient
{
public static void main(String args[])
{
try{

Socket myClient = new Socket("192168125",8018);

DataInputStream dataIn = new DataInputStream(myClientgetInputStream());
OutputStream dataOut = myClientgetOutputStream();

boolean flag = true;
int c;
String serverResponse = null ;

while(flag)
{
while( (c=Systeminread())!= -1 )
{
dataOutwrite((byte)c);
if(c=='\n')
{
dataOutflush();
serverResponse = dataInreadLine();
Systemoutprintln("服务器的返回信息是:"+serverResponse);

}
}

}
dataInclose();
dataOutclose();
myClientclose();
}

catch(Exception e)
{
Systemoutprintln("Exception :"+egetMessage());
}
}
}

当然可以
在服务器与客户端同时配置
开始->所有程序->Ms Sql Server->配置工具->sql server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine 节点,先择"远程连接",接下建议选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务就可以了
配置好连接参数就可以

你先得确认那个OPC服务器是OPC DA的还是OPC UA的才行,如果是早期的OPC DA服务器,肯定是不支持OPC UA的。
如果那个服务器支持OPC UA,那么只要你的客户端写的规范点,应该可以连接上。

一、消息推送基础
消息推送,就是在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息
当我们开发需要和服务器交互的移动应用时,基本上都需要和服务器进行交互,包括上传数据到服务器,同时从服务器上获取数据。
一般情况下,客户端与服务器之间通讯客户端是主动的,但这就存在一个问题就是一旦服务器数据有更新或者服务器要下发通知给客户端只能等客户端连接的时候才能实现。这种方式使消息失去了实时性。
如何使客户端能够实时的收到服务器的消息和通知,总体来说有两种方式,第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现。第二种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。这样,客户端就能自动的接收到消息。 
虽然Pull和Push两种方式都能实现获取服务器端更新信息的功能,但是明显来说Push方式比Pull方式更优越。因为Pull方式更费客户端的网络流量,更主要的是费电量,还需要我们的程序不停地去监测服务端的变化。  
二、几种常见的解决方案实现原理
1)轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息。
2)SMS(Push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受。
3)持久连接(Push)方式:客户端和服务器之间建立长久连接,这样就可以实现消息的及时行和实时性。
三、消息推送解决方案概述
A、C2DM云端推送方案
在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务。Android Cloud to Device Messaging (C2DM)是一个用来帮助开发者从服务器向Android应用程序发送数据的服务。该服务提供了一个简单的、轻量级的机制,允许服务器可以通知移动应用程序直接与服务器进行通信,以便于从服务器获取应用程序更新和用户数据。
该方案存在的主要问题是C2DM需要依赖于Google官方提供的C2DM服务器,由于国内的网络环境,这个服务经常不可用。
B、MQTT协议实现Android推送
采用MQTT协议实现Android推送功能也是一种解决方案。MQTT是一个轻量级的消息发布/订阅协议,它是实现基于手机客户端的消息推送服务器的理想解决方案。
wmqttjar 是IBM提供的MQTT协议的实现。我们可以从这里(>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13399978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存