新手求助 C# SOCKET网络聊天程序

枫色幻想 2014-12-15 01:32:48
从网上找了个模板来模范,模板本身没问题但是到我电脑是应该是数据库方面不对所以没办法对数据进行存储、读取。
我自己根据模板弄出来的编译没有问题但是打不开.exe,双击之后没有反应,而且感觉数据库方面有问题,因为自己没有接触过数据库所以不知道怎么弄,求帮助TAT
用的是VS2013和SQL SERVER 2008.
求教QAQ
模板:
http://pan.baidu.com/s/1jGMfzXc
自制:
http://pan.baidu.com/s/1o6uSTcu
...全文
179 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
枫色幻想 2014-12-23
  • 打赏
  • 举报
回复
引用 10 楼 liuhuibing12 的回复:
1楼说的粗暴简单
我现在一个问题一个问题的看,只想先解决眼前这个未将对象引用设置到对象的实例。,。,。。
whatdoyousay 2014-12-23
  • 打赏
  • 举报
回复
1楼说的粗暴简单
枫色幻想 2014-12-23
  • 打赏
  • 举报
回复
QAQ 改到这个BUG不知道怎么弄了 ************** 异常文本 ************** System.NullReferenceException: 未将对象引用设置到对象的实例。 在 MyQQClient.Client_SerSetup.button_OK_Click(Object sender, EventArgs e) 位置 d:\各种代码\C#练习\MyQQ\QQClass\MyQQClient\Client_SerSetup.cs:行号 90 在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ButtonBase.WndProc(Message& m) 在 System.Windows.Forms.Button.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 代码:
     private void sockUDP1_DataArrival(byte[] Data,System.Net.IPAddress Ip,int Port)
        {
            DataArrivaldelegate outdelegate = new DataArrivaldelegate(sockUDP1_DataArrival);//托管
            this.BeginInvoke(outdelegate, new object[] { Data, Ip, Port });                 //异步执行托管
        }

       private void button_OK_Click(object sender, EventArgs e)        //确定
        {
            if(text_PassWord.Text.Trim ()==text_PassWord2.Text.Trim())  //Trim去除前后空白 判断两次密码是否相同
            {
                QQClass.ClassMsg.RegisterMsg registermsg = new QQClass.ClassMsg.RegisterMsg();
                registermsg.UserName = text_Name.Text;
                registermsg.PassWord = text_PassWord.Text;
                byte[] registerData = new ClassSerializers().SerializeBinary(registermsg).ToArray();
                ClassMsg msg = new ClassMsg();
                msg.sendKind = QQClass.ClassMsg.SendKind.SendCommand;
                msg.msgCommand = QQClass.ClassMsg.MsgCommand.Registering;
                msg.data = registerData;
                serID = text_IP.Text.Trim();
                udpSocket1.Send(IPAddress.Parse(serID), 
                    Convert.ToInt32(text_Port.Text.Trim()), 
                    new ClassSerializers().SerializeBinary(msg).ToArray());
                //使用udpSocket控件的Send方法向服务器发送消息
            }
            else
            {
                text_PassWord.Text = "";
                text_PassWord2.Text = "";
                MessageBox.Show("密码与确认密码不匹配,请重新输入!");   //两次密码不同
            }
        }
我现在在路上 2014-12-15
  • 打赏
  • 举报
回复
引用 7 楼 u014085002 的回复:
[quote=引用 4 楼 xian_wwq 的回复:] 化繁为简,建议先把数据库操作代码屏蔽掉。 先搞清楚通讯这一块的逻辑
现在特纠结为什么.exe打不开,双击了什么都没有。socket通讯还没有那么不清楚[/quote] 单步调试,找到问题,不懂先谷歌,看看想想,再不懂,来问。 不过那也是你有一定基础才行,不然别人说什么你都不懂,那怎么解决问题
枫色幻想 2014-12-15
  • 打赏
  • 举报
回复
引用 4 楼 xian_wwq 的回复:
化繁为简,建议先把数据库操作代码屏蔽掉。 先搞清楚通讯这一块的逻辑
现在特纠结为什么.exe打不开,双击了什么都没有。socket通讯还没有那么不清楚
忘丿殇 2014-12-15
  • 打赏
  • 举报
回复
引用 5 楼 u014085002 的回复:
[quote=引用 2 楼 lwq222121 的回复:] 如果只是简单的聊天,不存储聊天记录那么就不用数据库,自己开发的话需要两个,一个是服务端监听,一个是客户端链接,直接发包就行了
注册用户的存储不是要用到么。。。[/quote] 那就先不用弄注册,先做在局域网内简单的聊天
枫色幻想 2014-12-15
  • 打赏
  • 举报
回复
引用 2 楼 lwq222121 的回复:
如果只是简单的聊天,不存储聊天记录那么就不用数据库,自己开发的话需要两个,一个是服务端监听,一个是客户端链接,直接发包就行了
注册用户的存储不是要用到么。。。
xian_wwq 2014-12-15
  • 打赏
  • 举报
回复
化繁为简,建议先把数据库操作代码屏蔽掉。 先搞清楚通讯这一块的逻辑
於黾 2014-12-15
  • 打赏
  • 举报
回复
数据库是最基础的吧 数据库不会,socket你会? socket也不会,你是想闹哪样
lwq222121 2014-12-15
  • 打赏
  • 举报
回复
如果只是简单的聊天,不存储聊天记录那么就不用数据库,自己开发的话需要两个,一个是服务端监听,一个是客户端链接,直接发包就行了
疯汉三 2014-12-15
  • 打赏
  • 举报
回复
不会数据库你还搞个毛线

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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