handlersocketjava里显示,“类没有主方法”

handlersocket  时间:2021-06-21  阅读:()

如何干净的实现Android/Java Socket 长连接通信

我们有时候有这种需求,即我们的android客户端要始终保持与服务端的连接,当服务端有任务或消息发送到android客户端的时候就发送,没有任务或消息的时候不发送但要保持这个连接,一旦有任务则开发发送,而我们的android客户端则要保持一个时刻接收任务或消息的状态。





这个时候我们通过socket来实现这种需求【当然你也可以采用ept,一旦有相应的socket到达,则启动一个线程去处理2::在线程中处理完返回给我们android客户端的消息或任务之后,要将这种结果表现在ui上,这个步骤方法就比较多了,例如你可以发一个广播来通知ui,或者你可以通过一个static的handler来处理

c#委托的回调 怎么个调?

最典型的应用,就是在异步调用时进行回调,看看MSDN上的例子吧。

using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading;

// State object for reading client data asynchronously public class StateObject { // Client socket. public Socket workSocket = null; // Size of receive buffer. public const int BufferSize = 1024; // Receive buffer. public byte[] buffer = new byte[BufferSize]; // Received data string. public StringBuilder sb = new StringBuilder(); }

public class AsynchronousSocketListener { // Thread signal. public static ManualResetEvent allDone = new ManualResetEvent(false);

public AsynchronousSocketListener() { }

public static void StartListening() { // Data buffer for ing data. byte[] bytes = new Byte[1024];

// Establish the local endpoint for the socket. // The DNS name of puter // running the listener is "". IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); IPAddress ipAddress = ipHostInfo.AddressList[0]; IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);

// Create a TCP/IP socket. Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );

// Bind the socket to the local endpoint and listen for ing connections. try { listener.Bind(localEndPoint); listener.Listen(100);

while (true) { // Set the event to nonsignaled state. allDone.Reset();

// Start an asynchronous socket to listen for connections. Console.WriteLine("Waiting for a connection..."); ept( new AsyncCallback(eptCallback), listener );

// Wait until a connection is made before continuing. allDone.WaitOne(); }

} catch (Exception e) { Console.WriteLine(e.ToString()); }

Console.WriteLine(" Press ENTER to continue..."); Console.Read(); }

public static void eptCallback(IAsyncResult ar) { // Signal the main thread to continue. allDone.Set();

// Get the socket that handles the client request. Socket listener = (Socket) ar.AsyncState; Socket handler = ept(ar);

// Create the state object. StateObject state = new StateObject(); state.workSocket = handler; handler.BeginReceive( state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state); }

public static void ReadCallback(IAsyncResult ar) { String content = String.Empty; // Retrieve the state object and the handler socket // from the asynchronous state object. StateObject state = (StateObject) ar.AsyncState; Socket handler = state.workSocket;

// Read data from the client socket. int bytesRead = handler.EndReceive(ar);

if (bytesRead > 0) { // There might be more data, so store the data received so far. state.sb.Append(Encoding.ASCII.GetString( state.buffer,0,bytesRead));

// Check for end-of-file tag. If it is not there, read // more data. content = state.sb.ToString(); if (content.IndexOf("<EOF>") > -1) { // All the data has been read from the // client. Display it on the console. Console.WriteLine("Read {0} bytes from socket. Data : {1}", content.Length, content ); // Echo the data back to the client. Send(handler, content); } else { // Not all data received. Get more. handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state); } } } private static void Send(Socket handler, String data) { // Convert the string data to byte data using ASCII encoding. byte[] byteData = Encoding.ASCII.GetBytes(data);

// Begin sending the data to the remote device. handler.BeginSend(byteData, 0, byteData.Length, 0, new AsyncCallback(SendCallback), handler); }

private static void SendCallback(IAsyncResult ar) { try { // Retrieve the socket from the state object. Socket handler = (Socket) ar.AsyncState;

// Complete sending the data to the remote device. int bytesSent = handler.EndSend(ar); Console.WriteLine("Sent {0} bytes to client.", bytesSent);

handler.Shutdown(SocketShutdown.Both); handler.Close();

} catch (Exception e) { Console.WriteLine(e.ToString()); } }

public static int Main(String[] args) { StartListening(); return 0; } }

java里显示,“类没有主方法”

“类没有主方法”是由于程序入口main没有找到! 在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等。

报错

久久网云-目前最便宜的国内,香港,美国,日本VPS云服务器19.9元/月起,三网CN2,2天内不满意可以更换其他机房机器,IP免费更换!。

久久网云怎么样?久久网云好不好?久久网云是一家成立于2017年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,久久网云目前提供有美国免费主机、香港主机、韩国服务器、香港服务器、美国云服务器,香港荃湾CN2弹性云服务器。专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松快捷运用云计算!多年云计算领域服务经验,遍布亚太地区的海量节点为...

ReliableSite:美国服务器租用,洛杉矶/纽约/迈阿密等机房;E3-1240V6/64GB/1TSSD,$95/月

reliablesite怎么样?reliablesite是一家于2006年成立的老牌美国主机商,主要提供独服,数据中心有迈阿密、纽约、洛杉矶等,均免费提供20Gbps DDoS防护,150TB月流量,1Gbps带宽。月付19美金可升级为10Gbps带宽。洛杉矶/纽约/迈阿密等机房,E3-1240V6/64GB内存/1TB SSD硬盘/DDOS/150TB流量/1Gbps带宽/DDOS,$95/月,...

PQ.hosting全线9折,1Gbps带宽不限流量VPS/€3/月,全球11大机房可选

Hostadvice主机目录对我们的服务进行了测试,然后给PQ.hosting颁发了十大WordPress托管奖。为此,宣布PQ.Hosting将在一周内进行折扣优惠,购买和续订虚拟服务器使用优惠码:Hostadvice ,全部优惠10%。PQ.hosting,国外商家,成天于2019年,正规公司,是全球互联网注册商协会 RIPE 的成员。主要是因为提供1Gbps带宽、不限流量的基于KVM虚拟的V...

handlersocket为你推荐
youtube创始人卜秋静 有关生平介绍动态图片格式动态图片什么格式broadcast播播……拼音java程序员招聘为什么Java程序员工资都很高java程序员招聘Java程序员,一般招聘都要求些啥gas是什么意思gc是什么意思啊?医院排队系统医院排队叫号系统有哪些功能?ocr软件下载哪个图片转文字软件比较好用?东兴证券网站东兴证券超强版下载泛微协同办公系统泛微oa怎么样?我想了解一下,有用过的同仁帮忙!发表下自己的观点(天津)
cn域名个人注册 naning9韩国官网 qq云存储 华为云服务 星星海 tier 表格样式 ssh帐号 圣诞节促销 域名接入 免费吧 免费申请个人网站 空间购买 监控服务器 阵亡将士纪念日 中国电信宽带测速 cpu使用率过高怎么办 alexa搜 rewrite规则 次时代主机 更多