请教服务器是NIO的socket server问题?

09-08-11 greentree
请教服务器是NIO的socket server, 那么服务器如何处理不同类型的客户端(客户端有NIO的,也有阻塞I/O的)?

banq
2009-08-11 19:45
NIO是服务器内部机制,与不同客户端交互是协议,两者没关系。

greentree
2009-08-11 20:53
我对这个问题还是没有弄太明白,我做了2次实验,

1:写了一个NIO实现的Server1, 然后又写了一个阻塞IO实现的Client1,用Client1去连接Server1,发现是连接没有问题,但是发送数据有问题。

2:写了一个NIO实现的Client2, 然后又写了一个阻塞IO实现的Server2,用Client2去连接Server2,发现是连接没有问题,但是发送接收数据有问题。

banq大哥的意思是说无论是BlockI/O或者nio这都是服务器和客户端内部的实现机制,这对服务器和客户端的影响不大

,因为网络通讯传输的是数据报文,用的是TCP/IP。

但是我看到道我上面我做实验的2中方式通讯还是有问题。请指教!

最近要将一个支付网关服务暴露出去,对接形势有SOCKET, HTTP URL, webservice 3 种类,对nio的理解还是不够深入,请又这方面经验的大哥多多指教!

greentree
2009-08-12 10:29
今天早上的试验已经解决了这个问题:

1:写了一个NIO实现的Server1, 然后又写了一个阻塞IO实现的Client1,用Client1去连接Server1,发现是连接没有问题,收发数据已经正常

2:写了一个NIO实现的Client2, 然后又写了一个阻塞IO实现的Server2,用Client2去连接Server2,发现是连接没有问题,收发数据已经正常

可能是昨天的程序写的有写问题,终于弄明白了,原来我是被 SelectionKey中的这些OP_READ WRITE之类的状态弄混淆了,以为客户端中如果不设置这些状态就没法通讯了,其实不然

猜你喜欢