没有写过网络程序,所以对网络程序的实现一无所知
跟朋友们请教一下网络程序的实现的模式是怎么样的一个模式我觉得一般用TcpClient,TcpListener类或者socket实现网络数据传送吧。我的疑问是这样的:
模拟情况:客户端发送一条命令给服务器,服务器收到命令后,执行命令,执行完了后,会返回一个响应给客户端。然后如此循环,但是不是说每次发的命令都是相同的。1.TcpClient如果在一个线程里发送命令,然后等待小段时间后就读取networkstream中的内容,应该不能这么样做吧,因为不知道服务端执行命令要多久,过多久才会发送响应回来。2.读取服务端的响应数据时,怎么样能够保证服务端把所有数据都发过来了呢,是不是有可能服务端要发送一些数据,可能你这次读取的时候,仅仅只发送了一部分数据过来。是不是必须要先明确知道服务端应该发送过来的数据是什么样的,有多少字节,然后比较一下字节数,如果不够数据,就继续等待再读取?3.服务端可以开启监听,一直监听数据,有数据就响应操作。客户端不能监听,如果不知道数据什么时候传过来,要实现即时收取数据的话,是不是新开一个线程,加入一个计时器,每隔很短的一段时间就查看一下networkstream是不是有缓冲数据,有数据的话就开始执行响应操作?