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 类型的,方法必须接收一个字符串数组的参数等等。

报错

腾讯云轻量服务器老用户续费优惠和老用户复购活动

继阿里云服务商推出轻量服务器后,腾讯云这两年对于轻量服务器的推广力度还是比较大的。实际上对于我们大部分网友用户来说,轻量服务器对于我们网站和一般的业务来说是绝对够用的。反而有些时候轻量服务器的带宽比CVM云服务器够大,配置也够好,更有是价格也便宜,所以对于初期的网站业务来说轻量服务器是够用的。这几天UCLOUD优刻得香港服务器稳定性不佳,于是有网友也在考虑搬迁到腾讯云服务器商家,对于轻量服务器官方...

CloudCone,美国洛杉矶独立服务器特价优惠,美国洛杉矶MC机房,100Mbps带宽不限流量,可选G口,E3-1270 v2处理器32G内存1Gbps带宽,69美元/月

今天CloudCone发布了最新的消息,推送了几款特价独立服务器/杜甫产品,美国洛杉矶MC机房,分配100Mbps带宽不限流量,可以选择G口限制流量计划方案,存储分配的比较大,选择HDD硬盘的话2TB起,MC机房到大陆地区线路还不错,有需要美国特价独立服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2...

racknerd:美国大硬盘服务器,$599/月,Ryzen7-3700X/32G内存/120gSSD+192T hdd

racknerd当前对美国犹他州数据中心的大硬盘服务器(存储服务器)进行低价促销,价格跌破眼镜啊。提供AMD和Intel两个选择,默认32G内存,120G SSD系统盘,12个16T HDD做数据盘,接入1Gbps带宽,每个月默认给100T流量,5个IPv4... 官方网站:https://www.racknerd.com 加密数字货币、信用卡、PayPal、支付宝、银联(卡),可以付款! ...

handlersocket为你推荐
instagram电脑版苹果macbook pro做摄影拍照后期有什么优势吗?为什么很多摄影师用它?和thinkpad W系列比呢?windowsmedia电脑程序打开方式变成Windows Media Player怎么改回来4k超高清视频下载哪里有4K片源下载啊?补充:刚入手了一个4k电视盒,小美盒子V9,说是支持4k。正好我的电视机是4k的,想知道哪里有得下载呢?有朋友说我傻,现在基本上没有4k片源下载,而且不知道什么时候才有。等到流行的时候也许这个机器又淘汰啦!我该怎么办啊?爱短信官网求助。爱短信爱聊怎么用?excel大写金额在Excel中如何输入数字直接显示大写金额?flash实例flash CS3 实例的属性面板里的实例名称是指什么刷ip流量一天可以刷一万IP流量的软件云输入法QQ云输入法怎样调整候选词的个数?防火墙技术应用防火墙的应用与研究论文gbk内码怎么查GBK内码?
.net虚拟主机 申请免费域名 5折 t牌 godaddy主机 256m内存 精品网 美国主机代购 godaddy优惠券 鲜果阅读 realvnc lighttpd 天猫双十一抢红包 windows2003iso 国外php空间 免费ddos防火墙 刀片式服务器 免费申请网站 hdd 服务器是干什么用的 更多