|
马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有个问题请教高手们:
写个客户端,本来是很简单的。可为什么
我在与unix的服务端socket程序通信时,无法接收数据。该模拟服务端是一字节一字节接收,直接收到;号为止。
或者与window下的服务端通信时,收到的是乱码,然后进行TC接收时就卡死在那。
用TC写个服务器,发送接收都正常。这就奇了怪了。我的两个模拟服务器是我平常用来测试程序用的。
绝对不会有啥问题。就算有问题,也应该至少能接收字符啊。我可是一字节一字节收,还都打日志的。
以下是我的TC代码,请问哪里没有考虑到(暂不进行异常判断,按理想状态来)。
还请不吝赐教。
(好吧,油条说看不懂,那就去掉所有不必要的代码。。。见红色。)
namespace HLR模拟器
//默认空间
var net,net2,ClientHandle,get_ip,get_port
var sendbuff,recvbuff,handle
//日志函数
function log(strtm)
handle=file.openfile("d:\\1.txt")
if(handle==0)
help.messagebox("文件打开失败")
else
file.writefileend(handle,"["&system.getsystime(3)&"]-"&strtm&"\r\n")
endif
endfunction
//退出按钮_点击操作
function exit_click()
help.exit()
endfunction
//连接
function but_connect_click()
//这里添加你要执行的代码
var ret
get_ip=edit.gettext("ed_ip")
get_port=edit.gettext("ed_port")
ret = net.wsastartup() //初始化网络环境
ClientHandle=net.socket(1) //创建流式(TPC)套接字
net.connect(ClientHandle,get_ip,get_port)
sendbuff = edit.gettext("ed_sr")
strtemp=str.format("%s",sendbuff)
net.send(ClientHandle,strtemp)
net.recv(ClientHandle,recvbuff)
strtemp2=str.format("%s",recvbuff)
help.messagebox(strtemp2)
net.closesocket(ClientHandle)
endfunction
//初始化
function init()
//这里添加你要执行的代码
//edit.settext("ed_ip","10.200.5.201")
edit.settext("ed_ip","172.20.35.151")
edit.settext("ed_port","3000")
handle=file.createfile("d:\\1.txt","rw|FILE_SHARE_READ|FILE_SHARE_WRITE|CREATE_ALWAYS") //自定义属性
if(handle==0)
help.messagebox("文件创建失败")
else
help.messagebox("文件创建成功")
file.closefile(handle)
endif
endfunction
endnamespace
//空间结束
|
|