C#实现简单聊天程序的方法

本文实例讲述了C#简单聊天程序实现方法。分享给大家供大家参考。具体如下:

假如有服务器端程序,ChatServer和客户端程序ChatClient.实现客户端向服务器端发送信息的简单功能.

运行步骤,

1.先是服务器端start listen,
2.然后客户端connect.
3.客户端发送消息
 
只要服务器端start listen了,然后客户端也connect了.这样建立起连接后.接受发送信息就方便了,只要用writer,reader去操作NetworkStream
 
服务器ChatServer
创建一个WinForm页面
引用命名空间:

using System.Net.Sockets;
using System.Net;
using System.IO;
using System.Threading;
public class ChatServer
{
private int port = 54321; //端口号
private IPAddress ip = IPAddress.Parse("10.20.30.40"); //ip地址
private TcpListener tcpListener= null;
private TcpClient tcpClient = null;
private NetworkStream networkStream = null;
private BinaryReader reader;
//private BinaryWriter writer;
private string getInfo = string.empty;
//开始监听
private void btnStartListen_Click(object sender, EventArgs e)
{
   tcpListener= new TcpListener( ip , port);
   tcpListener.Start(); //开始监听
   Thread acceptClientMsgThread= new Thread(AcceptClientMsg);
   //运行一个线程去处理客户端发来的信息
   acceptClientMsgThread.Start();
}
//处理客户端发来的信息
private void AcceptClientMsg()
 {
  tcpClient = tcpListener.AcceptTcpClient();
  if( tcpClient != null)
  {
    networkStream = tcpClient.GetStream();
    reader = new BinaryReader( networkStream);
    while (true){
     getInfo += reader.ReadString();  //读取客户端发来的信息
    }
  }
}
//假如还要显示信息的话,可以整个显示按钮(当然最好的办法是用些线程)
//然后点击button后让信息显示出来txtShowClientMsg.Text = getInfo;
//如果服务器端想再给客户端发信息,就可以整个发送按钮.然后添加如下代码
//string sendMsg = txtSendMsge.Text;
//writer = new BinaryWriter( networkStream);
//writer.write( sendMsg);
}

客户端ChatClient

using System.Net.Sockets;
using System.Net;
using System.IO;
using System.Threading;
public class ChatClient
{
 private int port = 54321;
private IPAddress ip = IPAddress.Parse("10.20.30.40");
private TcpClient tcpClient = null;
private NetworkStream networkStream = null;
//private BinaryReader reader;
private BinaryWriter writer;
//连接server
private void btnStartConnect_Click(object sender, EventArgs e)
{
 tcpClient = new TcpClient();
 tcpClient.Connect( ip, port);
 networkStream = tcpClient.GetStream();
}
//发送信息
private void btnStartConnect_Click(object sender, EventArgs e)
{
 string sendMsg = txtSendMsg.Text;
 writer = new BinaryWriter( networkStream);
 writer.Write( sendMsg); //发送信息
}
//如果还要接受server的消息的话.
//reader = new BinaryReader( networkStream);
//string getInfo = reader.ReadString();
}

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • C#基于UDP实现的P2P语音聊天工具

    语音获取 要想发送语音信息,首先得获取语音,这里有几种方法,一种是使用DirectX的DirectXsound来录音,我为了简便使用一个开源的插件NAudio来实现语音录取. 在项目中引用NAudio.dll //------------------录音相关----------------------------- private IWaveIn waveIn; private WaveFileWriter writer; private void LoadWasapiDevicesCombo(

  • c#实现多线程局域网聊天系统

    觉得好有点帮助就顶一下啦. socke编程,支持多客户端,多线程操作避免界面卡死. 开启socket private void button1_Click(object sender, EventArgs e) { try { int port = int.Parse(txt_port.Text); string host = txt_ip.Text; //创建终结点 IPAddress ip = IPAddress.Parse(host); IPEndPoint ipe = new IPEnd

  • C#聊天程序服务端与客户端完整实例代码

    本文所述为基于C#实现的多人聊天程序服务端与客户端完整代码.本实例省略了结构定义部分,服务端主要是逻辑处理部分代码,因此使用时需要完善一些窗体按钮之类的. 先看服务端代码如下: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Net; using

  • C#制作简单的多人在线即时交流聊天室

    实现网页版的在线聊天室的方法有很多,在没有来到HTML5之前,常见的有:定时轮询.长连接+长轮询.基于第三方插件(如FLASH的Socket),而如果是HTML5,则比较简单,可以直接使用WebSocket,当然HTML5目前在PC端并没有被所有浏览器支持,所以我的这个聊天室仍是基于长连接+长轮询+原生的JS及AJAX实现的多人在线即时交流聊天室,这个聊天室其实是我上周周末完成的,功能简单,可能有些不足,但可以满足在线即时聊天需求,分享也是给大家提供一个思路,大家可以基于此来实现更好的在线即时聊

  • c#多线程网络聊天程序代码分享(服务器端和客户端)

    XuLIeHua类库 复制代码 代码如下: using System;using System.Collections;  using System.Collections.Generic;using System.Threading;  using System.Runtime.Serialization;using System.Runtime.Serialization.Formatters.Binary;using System.Text;using System.IO;using Sy

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

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

  • C#基于Windows服务的聊天程序(1)

    本文将演示怎么通过C#开发部署一个Windows服务,该服务提供各客户端的信息通讯,适用于局域网.采用TCP协议,单一服务器连接模式为一对多:多台服务器的情况下,当客户端连接数超过预设值时可自动进行负载转移,当然也可手动切换服务器,这种场景在实际项目中应用广泛. 简单的消息则通过服务器转发,文件类的消息则让客户端自己建立连接进行传输.后续功能将慢慢完善. 自定义协议: 1.新建Windows服务项目 2.修改配置文件添加 <appSettings> <add key="maxQ

  • 分享一个C#编写简单的聊天程序(详细介绍)

    引言 这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考.文章大体分为四个部分:程序的分析与设计.C#网络编程基础(篇外篇).聊天程序的实现模式.程序实现. 程序的分析与设计 1.明确程序功能 如果大家现在已经参加了工作,你的经理或者老板告诉你,"小王,我需要你开发一个聊天程序".那么接下来该怎么做呢?你是不是在脑子里有个雏形,然后就直接打开VS2005开始设计窗体,编写代码了呢?在开始之

  • C#实现简单聊天程序的方法

    本文实例讲述了C#简单聊天程序实现方法.分享给大家供大家参考.具体如下: 假如有服务器端程序,ChatServer和客户端程序ChatClient.实现客户端向服务器端发送信息的简单功能. 运行步骤, 1.先是服务器端start listen, 2.然后客户端connect. 3.客户端发送消息   只要服务器端start listen了,然后客户端也connect了.这样建立起连接后.接受发送信息就方便了,只要用writer,reader去操作NetworkStream   服务器ChatSe

  • Python基于Socket实现的简单聊天程序示例

    本文实例讲述了Python基于Socket实现的简单聊天程序.分享给大家供大家参考,具体如下: 需求:SCIENCE 和MOOD两个人软件专业出身,厌倦了大众化的聊天软件,想着自己开发一款简易的聊天软件,满足他们的个性化需求,又不失"专业水准",Talk is easy, try to code it. 技术:socket,详细可参考前文:Python Socket实现简单TCP Server/client功能 语言:python 尽管socket区分服务器和客户端,但是在聊天程序中两

  • java NIO实现简单聊天程序

    本文实例为大家分享了java NIO实现简单聊天程序的具体代码,供大家参考,具体内容如下 服务端 功能: 1.接受客户端连接 2.发送消息 3.读取客户端消息 Server.java public class Server { private Selector selector; private ByteBuffer writeBuffer = ByteBuffer.allocate(1024); private ByteBuffer readBuffer = ByteBuffer.alloca

  • Java实战之基于TCP实现简单聊天程序

    目录 一.如何实现TCP通信 二.编写C/S架构聊天程序 1.编写服务器端程序 - Server.java 2.编写客户端程序 - Client.java 3.测试服务器端与客户端能否通信 4.程序优化思路 - 服务器端采用多线程 一.如何实现TCP通信 要实现TCP通信需要创建一个服务器端程序和一个客户端程序,为了保证数据传输的安全性,首先需要实现服务器端程序,然后在编写客户端程序. 在本机运行服务器端程序,在远程机运行客户端程序 本机的IP地址:192.168.129.222 远程机的IP地

  • java中UDP简单聊天程序实例代码

    学过计算机网络通信的都知道,计算机之间传送数据由两种,即TCP通信和UDP通信.TCP是可靠的面向连接的通信协议,二UDP是不可靠的面向无连接的通信协议. java中有基于TCP的网络套接字通信,也有基于UDP的用户数据报通信,UDP的信息传输速度快,但不可靠! 基于UDP通信的基本模式: (1)将数据打包,称为数据包(好比将信件装入信封一样),然后将数据包发往目的地. (2)接受别人发来的数据包(好比接收信封一样),然后查看数据包中的内容. 客户机 复制代码 代码如下: package com

  • Python使用Socket实现简单聊天程序

    b2b模式的聊天工具 服务端: # 链接 while True: print('等待连接...') sock,adr = server_socket.accept() while True: try: # 接受数据 data = sock.recv(1024) print(adr[0] + '发来消息:', data.decode()) # 发送数据 send_msg = input("请输入发送内容>>").strip() sock.send(send_msg.encod

  • Java continue break制作简单聊天室程序

    Java continue break 制作简单聊天室程序,屏蔽不文明语言,显示每句话聊天时间 package com.swift; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class ChatWithBreakContinue { public static void main(String[] args) { Scanner scan = new Sc

  • 简单实现python聊天程序

    本文实例为大家分享了简单实现python聊天程序的具体代码,供大家参考,具体内容如下 客户端 #coding:utf-8 import socket, sys host = 'localhost' port = 10001 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) print 'socket创建成功' try: s.connect((host,port)) print '连接成功' except: sys.exit(1) while

  • java基于C/S模式实现聊天程序(客户端)

    经过这几天对java的学习,用java做了这个计算机网络的课程设计,基于C/S模式的简单聊天程序,此篇文章介绍一些客户端的一些东西. 先讲一讲此聊天程序的基本原理,客户端发送消息至服务器,服务器收到消息之后将其转发给连接服务器的所有客户端,来自客户端的消息中包含发件人的名字. 客户端的主要功能是发送消息和接收消息,客户端设置好了端口和服务器地址,并创立客户端自己的套接字,用作和服务器通信的一个标识.布局就不多说了,主要说说监视器和两个重要的线程:发送和接收. 监视器中,登录按钮触发的功能是设置用

  • 简单的php+mysql聊天室实现方法(附源码)

    本文实例讲述了简单的php+mysql聊天室实现方法.分享给大家供大家参考,具体如下: 这里介绍的程序分为 8 个文件: frameset框架页面:index.php 显示聊天室内容页:show.php 用户登陆页面:login.php 用户发言页面:speak.php 数据库配置文件:config.php 页面美化样式:style.css 数据库文件:chat.sql 发言表情包:face/ 分别介绍如下: 一.数据库文件chat.sql如下: SET FOREIGN_KEY_CHECKS=0

随机推荐