(用C语言实现)客户端如何通过socket调用服务器函数 5
要求:现在用C语言socket创建了一个客户端和一个服务器端。当客户端发出请求调用服务器上的函数,服务器接受请求后调用客户端请求的函数进行处理,将处理后的结果返回给客户端...
要求:现在用C语言socket创建了一个客户端和一个服务器端。当客户端发出请求调用服务器上的函数,服务器接受请求后调用客户端请求的函数进行处理,将处理后的结果返回给客户端。
我是新手,发现客户端只能给服务器发送字符串,不知道如何让客户端调用服务器上的函数(方法),希望高手指点。最好给个例子,用C语言写。(因为java和C区别有点大) 展开
我是新手,发现客户端只能给服务器发送字符串,不知道如何让客户端调用服务器上的函数(方法),希望高手指点。最好给个例子,用C语言写。(因为java和C区别有点大) 展开
展开全部
其实你会发送字符串就行了。你可以特定一个字符串,例如:你自己规定客户端向服务器发送字符串“F”,服务器接收到数据,判断一下,如果是“F”,那么就调用你想调用的那个函数,再将返回值发送给客户端就好了。
追问
嗯,我起初也是想的这个方法,但是由于这种方法把字符串写固定了,推广性不强,适合作为备选方案。首选还是找一种可以治本的方案,当然,还是谢谢你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以自己设计一个应用层协议,通过客户端发送命令及所要的参数,服务端执行相关的服务!简单的协议格式可以用如TLV格式。
更多追问追答
追问
感谢你的回答,可是我还是不大懂。我看java是通过反射机制实现的啊,C有类似的处理方法么?
追答
没有,C是处于高级和低级之间的语言,它没有那么多机制。所有的东西你都得自己设计。我给你举个例子吧
你定义了个TLV字符串: | cmd | data_size | data | (每个段一字节)
此时你要在客户端设计一个发送请求的函数:int request(int socket, char *req_str,size_t req_size);它用来封装并发送请求。
而服务器端收到你的请求后,对TLV进行解析。然后从你的TLV信息中去判断应该调用的函数,并把data中的参数解析后传递给调用的函数。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是要用到类似于execl的函数, 客户端通过管道告诉服务器要执行的文件和执行文件所需的参数, 然后服务器执行程序, 将结果告诉客户端.如果是的话, 而execl函数可以用.网上API很多,那个宋敬彬的《网络编程》里的第18个例子有相关的操作, 网上有源代码. 不知道是不是你想要的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同学,你说的其实是被称为Web Service的东西。
不用自己定义协议了,可以参考SOAP协议,也有实现gsoap,可以直接拿来用。
Any questions ?
不用自己定义协议了,可以参考SOAP协议,也有实现gsoap,可以直接拿来用。
Any questions ?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询