关于用c开发axis客户端的问题!

lixiaosan 2007-03-27 10:21:47
现在已经用axis在server端部署了一个message类型的服务

client用java实现soap调用能正常
SOAPConnection.Call(..)

现在client想用c实现调用,初步设想用socket与server相连后,把soap消息发送到相应服务上。但是由于server端没有接收连接的程序,所以client在执行connect的时候不能成功,应该怎么做阿,请高手指教,谢谢!
...全文
336 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lixiaosan 2007-06-07
  • 打赏
  • 举报
回复
最后还是自己搞定了
cloudgamer 2007-04-14
  • 打赏
  • 举报
回复
学习
lixiaosan 2007-03-27
  • 打赏
  • 举报
回复
不可能吧?你的Web Services地址是哪里?

http://192.168.1.20:8080/axis/services/MessageService


我的client想用是c,所以如果要把soap消息发到server端,首先必须得和server端用socket相连把。
client在用socekt的connect(....)连接时,始终不能成功。请教
wtogether 2007-03-27
  • 打赏
  • 举报
回复
但是由于server端没有接收连接的程序
---------------------------------------------
不可能吧?你的Web Services地址是哪里?
wtogether 2007-03-27
  • 打赏
  • 举报
回复
创建一个socket
int s = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
然后设置地址和端口:
struct sockaddr_in a;
a.sin_family = AF_INET;
a.sin_port = htons(8080);
a.sin_addr.s_addr = inet_addr("192.168.1.20");
接着connect
connect(s, (struct sockaddr *)&a, sizeof(a));
之后发送这样一个数据包:
POST /axis/services/MessageService HTTP/1.1
Host: 192.168.1.20:8080
Content-Type: text/xml; charset=utf-8
Content-Length: [xml包的长度]
SOAPAction: "http://tempuri.org/GetMiscInfo"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
.......
</soap:Envelope>

发送完就recv

如果connect失败,就用命令提示符,输入:telnet 192.168.1.20 8080回车,如果连接上了,应该就进入盲打输入区了
如果telnet可以连接上,而自己写的socket连接不上,那就要检查一下socket代码了
WIN32下,socket创建前需要WSAStartup的

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧