通信-C#基于TCP的局域网聊天工具 不知道怎么接收消息部分怎么写 求设计思路

问题描述

C#基于TCP的局域网聊天工具 不知道怎么接收消息部分怎么写 求设计思路

我之所以问这个问题是因为我说的接收消息不是那种两个窗口都开着 发送或接收的
而是当接收的用户不在场时 聊天窗口并未打开也能接收 只是好友列表里的好友在闪 然后等用户回来 点击好友时聊天窗口,好友发送过来的那些信息还有 然后用户也能回复 说白了就是qq那样的 我只能做到发送信息 和当发送消息,接收方的用户里对应的好友在闪(只是在闪 也不能接收消息和打开窗口) 想问问大侠们 如果是你们大概会怎么设计这一块
................................................
我的想法是在与好友通信时 有两种形式一种主动一种被动 主动即我点击好友打开聊天窗口(TCP连接放到了聊天窗口加载事件里) 被动即好友在闪 我点击好友打开聊天窗口(专门建立监听的语句是放在好友列表窗口(聊天窗口的父类)的加载事件里,主动与被动的聊天窗口只是样子一样但是是两个不同的窗口)下面问题来了 在被动通信时 方发过来的消息我存在哪里 而且聊天窗口里并未建立监听我怎么接收消息 想了半天没有思路感觉脑细胞不够用的

解决方案

怎么接收和怎么发送相关的,你如果完全一无所知,建议你找一个同时有服务端和客户端的程序例子来看。
http://download.csdn.net/detail/networkcomms/8413087
http://download.csdn.net/download/zsy701/3547037

时间: 2024-09-15 13:01:59

通信-C#基于TCP的局域网聊天工具 不知道怎么接收消息部分怎么写 求设计思路的相关文章

char-VS2010下编写基于TCP的网络应用程序运行出现乱码,一堆“烫”字,求高手救命

问题描述 VS2010下编写基于TCP的网络应用程序运行出现乱码,一堆"烫"字,求高手救命 客户端:#include #include #pragma comment(libws2_32.lib"")void main(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1 1 );err = WSAStartup( wVersionRequested

基于TCP的局域网多用户通信、文件传送程序详解

看了袁渊先生在VC知识库<在线杂志>第14期发表的文章<基于TCP/IP的局域网多用户通信>,感觉受益颇多,但也觉得里面有一些不太完善的地方,具体来说主要有: 两个服务器单独运行,且主线程均阻塞,用户界面死锁,不便于控制: 聊天服务器线程和互斥量的使用可能导致死锁: 不能实现文件传送(文件传送可不能由服务器转发,否则非把它累趴下不可^-^): 不能由用户进行网络设置,所以在不同的网络使用必须修改源程序等等: 我在此基础上重新设计编写了一个系统,具体如下: 一.构架设计 整个系统分为

基于c#用Socket做一个局域网聊天工具_C#教程

程序设计成为简单的服务端和客户端之间的通信, 但通过一些方法可以将这两者进行统一起来, 让服务端也成为客户端, 让客户端也成为服务端, 使它们之间可以互相随时不间断的通信. 考虑到实现最原始的服务端和客户端之间的通信所需要的步骤对于写这样的程序是很有帮助的. 作为服务端, 要声明一个Socket A并绑定(Bind)某一个IP+这个IP指定的通信端口, 比如这个是127.0.0.1:9050, 然后开始监听(Listen), Listen可以监听来自多个IP传过来的连接请求, 具体可以同时连接几

C#局域网聊天工具制作系列讲座(4)_托盘

问题描述 现在很多程序都有托盘功能,而我们的聊天工具更是如此,无论是QQ,旺旺,飞鸽传书等等,都是以托盘的形式工作在后台,对消息进行监听的.而VS2005给我们提供了现成的控件,来完成托盘的功能,下面我结合代码讲解下项目中可能用到的托盘技巧.1.如何实现托盘功能:在VS2005中直接添加notifyIcon控件,然后设置下icon属性,给其设置个图标即可,使用托盘功能.但是托盘并不能实现我们要求的功能,具体的功能实现,需要我们手工添加代码实现.2.如何最小化时自动到托盘privatevoidFo

C#局域网聊天工具制作系列讲座(3)_窗体间传值

问题描述 启动主程序时,同时启动UDP的监听,这时应该使用集合来做为消息队列的缓存,以便用户能在任何时候浏览到消息.这个集合一般在主程序中定义,而用户接受消息,一般我们会弹出窗口给用户来浏览消息,以及在新窗口中回复消息,那如何将主窗口中的消息,传递到消息显示窗体中呢?如何是Web(ASP.net)我们可以封装到form中传值,或者request传值,甚至可以在URL中接参数直接传值,而winform中窗体传值以上方法就都不在能用了.在windowsform之间传值,我总结了有四个方法:全局变量.

利用easeui实现一对一聊天,却出现接收消息显示排序问题,例如刚接收到对方的消息时,立即回复一条或者两条信息后,这回复消息却显示在另一方刚发送的消息前面,求解

问题描述 解决方案 这个肯定是你的模拟器的时间问题啊,我之前也是这样的 ,看了下系统时间 ,改过来就可以了解决方案二:3.x发送消息是拿的手机本地时间,接收消息是拿的服务器时间,需要本地时间和网络时间一致,你也可以把收到的消息时间修改成本地的,然后去排序.

基于java编写局域网多人聊天室_java

由于需要制作网络计算机网络课程设计,并且不想搞网络布线或者局域网路由器配置等等这种完全搞不懂的东西,最后决定使用socket基于java编写一个局域网聊天室: 关于socket以及网络编程的相关知识详见我另一篇文章:Java基于socket编程 程序基于C/S结构,即客户端服务器模式. 服务器: 默认ip为本机ip 需要双方确定一个端口号 可设置最大连接人数 可启动与关闭 界面显示在线用户人以及姓名(本机不在此显示) 客户端: 需要手动设置服务器ip地址(局域网) 手动设置端口号 输入姓名 可连

c#局域网聊天软件的实现

本软件是基于大学寝室局域网聊天的思路.c#源代码如下: 1 using System; 2 using System.Drawing; 3 using System.Collections; 4 using System.ComponentModel; 5 using System.Windows.Forms; 6 using System.Data; 7 using System.Threading; 8 using System.Net.Sockets; 9 using System.IO;

基于TCP的客户端服务器通信,如何在终端输入数据进行聊天呢,求大神帮我

问题描述 基于TCP的客户端服务器通信,如何在终端输入数据进行聊天呢,求大神帮我 //clientTcp.c #include #include #include #include #include #include #include #include #define SERVPORT 3333 //侦听端口地址 #define MAXDATASIZE 100 main(int argc,char argv[]) { int sockfd,sendbytes; char buf[MAXDATAS