要求:现在用C语言socket创建了一个客户端和一个服务器端。当客户端发出请求调用服务器上的函数,服务器接受请求后调用客户端请求的函数进行处理,将处理后的结果返回给客户端。
我是新手,发现客户端只能给服务器发送字符串,不知道如何让客户端调用服务器上的函数(方法),希望高手指点。最好给个例子,用C语言写。(因为java和C区别有点大)
嗯,我起初也是想的这个方法,但是由于这种方法把字符串写固定了,推广性不强,适合作为备选方案。首选还是找一种可以治本的方案,当然,还是谢谢你。
感谢你的回答,可是我还是不大懂。我看java是通过反射机制实现的啊,C有类似的处理方法么?
追答没有,C是处于高级和低级之间的语言,它没有那么多机制。所有的东西你都得自己设计。我给你举个例子吧
你定义了个TLV字符串: | cmd | data_size | data | (每个段一字节)
此时你要在客户端设计一个发送请求的函数:int request(int socket, char *req_str,size_t req_size);它用来封装并发送请求。
而服务器端收到你的请求后,对TLV进行解析。然后从你的TLV信息中去判断应该调用的函数,并把data中的参数解析后传递给调用的函数。
你好,非常感谢你能继续回复。由于我是新手,在网上查了下TLV的信息,对你说的方法还是了解不够明白,能否给个详细点的例子,不胜感激。
本回答被网友采纳