c# Socket BeginReceive异步接收不到信息
那就证明没有接收到东西。
因为这个socket通道没有收到过任何数据。
BeginReceive返回只能证明开始异步接收数据,打印了456并不能证明有数据。
socket端口接收问题
嗯是有这个情况.自己发自己端口会乱接,那你的C现成8000开着的话,那现成B10000就不会接到8000端口的信息了.OK,谁没有事自己发自己内容啊,晕.建议C监视8000一直开着,这样B就收不到自己的8000了,或者你自己判断,弄个协议啊嘿嘿,比如说发来的文本的第一行表示是需要发到哪个端口的,拿出来判断下是否对就行了,再说,你得将自己发给自己的SOCKET事先判断出来或者接收到后看IP相同就不处理OK
socket java实现客户端多线程接受消息并发送消息给服务器,并发执行
对于通信来说,不存在绝对的服务器和客户端,谁在等待别人来,谁就是服务器,谁主动去联系人,谁就是客户端。
所以。
你要想客户端接受消息,那在启动客户端的时候,在客户端程序里开始一个提供端口的Socket就可以了。
ServerSocket serverSocket = new ServerSocket(5000);
while (true) {
final Socket socket = serverSocket.accept();
new Thread() {
Socket mySocket = socket;
@Override
public void run() {
try {
System.out.println(mySocket);
InputStream is = mySocket.getInputStream();
byte[] bytes = new byte[1024];
int n = is.read(bytes);
System.out.println(new String(bytes, 0, n));
OutputStream os = mySocket.getOutputStream();
os.write(("server reply at time " + new Date()
.toString()).getBytes());
mySocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
关于socket的问题,求助大家!
可以尝试看看服务器端是否有这样的代码:try { socket.sendUrgentData(0xFF);} catch (Exception e) { e.printStackTrace();}我有尝试在服务器端加以上代码,客户端接收的数据就有你提到的情况。