7,540
社区成员
发帖
与我相关
我的任务
分享
Form1()
{
InitializeComponent();
this->richTextBox1->Text =L"正在连接服务器...";
WSADATA wsa;
//初始化套接字DLL
if(WSAStartup(MAKEWORD(2,2),&wsa)!=0){
this->richTextBox1->Text = richTextBox1->Text+"\n初始化套接字失败";
}
//创建套接字
if((sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET){
this->richTextBox1->Text =richTextBox1->Text+"\n创建套接字失败";
}
int test_number_a;
test_number_a=Connect(sock);//链接服务器 此处connect报错
if(test_number_a==-1) this->richTextBox1->Text = richTextBox1->Text+"\n连接服务器失败";
else this->richTextBox1->Text = richTextBox1->Text+"\n连接服务器成功,请在右边文本框输入车票密码进行查询";
//
//TODO: 在此处添加构造函数代码
//
}
SOCKET server(SOCKET sock)
SOCKET s;
sock=server(s);
233 我好聪明[/quote]
只是一个socket还好办,因为在winsocket中socket就是int,一个值类型而已,后面的有你受的SOCKET server(SOCKET sock)
SOCKET s;
sock=server(s);
233 我好聪明
//这样吧
SOCKET &consock = sock;
test_number_a=Connect( consock);
[/quote]
然后还是出现了这样的问题
c:\users\cr\documents\visual studio 2012\projects\client\client\Form1.h(84): error C2440: “初始化”: 无法从“SOCKET”转换为“SOCKET &”
1> gc 堆(托管类成员)中的对象不能转换为本机引用
不是程序的问题 我把有关socket的代码都放到构造函数中就可以编译运行
现在是本机方法如何引用托管类的对象
//这样吧
SOCKET &consock = sock;
test_number_a=Connect( consock);
Form1::Connect”: 不能将参数 1 从“SOCKET”转换为“SOCKET &”
// 错误很明显吧! 你Connect函数定义的参数 需要的是引用,
test_number_a=Connect(sock);// 传的参数和定义参数类型不匹配吧