编写简单的C/S聊天程序
找了点资料看了下,于是自己动手做了一个练习一下,
主要用到TServerSocket和TClientSocket这个控件。
客户端:
var
Form1: TForm1;
NewTime:string; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Host:=Trim(Edit1.Text); //连接服务端地址
ClientSocket1.Port:=57124; //连接的端口号
ClientSocket1.Open; //开始连接
Button1.Enabled:=False;
end; procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
Str:string;
begin
//读取服务端发过来的数据
str:=ClientSocket1.Socket.ReceiveText;
Memo1.Lines.Add(Str); end; procedure TForm1.Button2Click(Sender: TObject);
var
Msg:string;
begin
Msg:=Trim(Edit2.Text);
Memo1.Lines.Add('王四:' + NewTime + #10);
Memo1.Lines.Add(Msg);
ClientSocket1.Socket.SendText('王四:' + NewTime +#13#10);
ClientSocket1.Socket.SendText(Msg); //发送给服务端 end; procedure TForm1.Timer1Timer(Sender: TObject);
begin
NewTime:=TimeToStr(Now); end;
服务端:
var
Form1: TForm1;
NewTime:string; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Port:=57124; //监听端口
ServerSocket1.Open; //开始监听
Button1.Enabled:=False;
end; procedure TForm1.Button2Click(Sender: TObject);
var
Str:string;
i : integer;
begin
Str:=Trim(Edit2.Text);
for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do
begin
Memo1.Lines.Add('张三:' + NewTime + #10);
Memo1.Lines.Add(Str);
ServerSocket1.Socket.Connections[i].SendText('张三:' + NewTime +#13#10); //发送数据
ServerSocket1.Socket.Connections[i].SendText(Str);
end; end; procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket); //读取客服端发来的数据
var
Msg:string;
begin
Msg:=Socket.ReceiveText;
Memo1.Lines.Add(Msg); end; procedure TForm1.Timer1Timer(Sender: TObject);
begin
NewTime:=TimeToStr(Now);
end;
运行图:

编写简单的C/S聊天程序的更多相关文章
- 编写简单的windows桌面计算器程序
编译环境:VS2017 主文件为: #include "stdafx.h" #include "WindowsProject5.h" #include &quo ...
- C#编写简单的聊天程序
这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考.文章大体分为四个部分:程序的分析与设计.C#网络编 ...
- C#编写简单的聊天程序(转)
这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考.文章大体分为四个部分:程序的分析与设计.C#网络编 ...
- Socket聊天程序——初始设计
写在前面: 可能是临近期末了,各种课程设计接踵而来,最近在csdn上看到2个一样问答(问题A,问题B),那就是编写一个基于socket的聊天程序,正好最近刚用socket做了一些事,出于兴趣,自己抽了 ...
- Winfrom 简单的进度条小程序
使用Winform空间编写简单的进度条小程序: 所需控件:Lable 标签 TextBox 文本框 progressBar 进度条控件 timer 定时器 下面是源码及效果图: /// &l ...
- Udp实现简单的聊天程序
在<UDP通讯协议>这篇文章中,简单的说明了Udp协议特征及如何Udp协议传输数据 这里将用Udp协议技术,编写一个简单的聊天程序: //发送端: package com.shindo.j ...
- 通过编写聊天程序来熟悉python中多线程及socket的用法
1.引言 Python中提供了丰富的开源库,方便开发者快速就搭建好自己所需要的应用程序.本文通过编写基于tcp/ip协议的通信程序来熟悉python中socket以及多线程的使用. 2.python中 ...
- 以您熟悉的编程语言为例完成一个hello/hi的简单的网络聊天程序
Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信,应用程序通常通过"套接字"向网络发出 ...
- Socket编程实践(3) 多连接服务器实现与简单P2P聊天程序例程
SO_REUSEADDR选项 在上一篇文章的最后我们贴出了一个简单的C/S通信的例程.在该例程序中,使用"Ctrl+c"结束通信后,服务器是无法立即重启的,如果尝试重启服务器,将被 ...
随机推荐
- HTML5[5]:在移动端禁用长按选中文本功能
在手机浏览器中,长按可选中文本,但如果在应用中,会给人一种异样的感觉,最好还是禁用此功能为上. * { -webkit-touch-callout:none; -webkit-user-select: ...
- MyBatis知多少(1)
SQL (Structured Query Language,结构化查询语言)己经存在很长一段时间了.自从第一次提出“数据可以被规范化为一组相互关联的表”这样的思想以来,已经超过35年了. 从那时起, ...
- Scene视图辅助线绘制
有时候需要在Scene视图中绘制一些辅助线,方便进行一些编辑的工作,可以通过如下类和函数完成: 绘制辅助线,相关类: Gizmos类:用于在Scene视图中绘制调试信息或辅助线,这些辅助线只有在Sce ...
- STL中stack小结
(1)为了运用stack,你必须包含头文件<stack>:#include<stack> (2)在头文件中stack定义如下: namespace std{ template ...
- C#中处理耗时任务的几种方式
0.准备 首先,我们先创建几个耗时任务: public class TestTasks { //无参.无返回值任务 public void Task1() { Console.WriteLine(&q ...
- Java 时间日期系列目录
下面是Java的时间和日期相关文章目录: 01. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(1) Calendar 02. ...
- 【转载】给VM虚拟机增加硬盘容量
转载自:http://www.douban.com/note/53678368/ vmware-vdiskmanager [选项]这里的选项你必须包含以下的一些选择项或参数选项和参数描述<dis ...
- selenium webdriver (python) 第二版
前言 对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发人员智商低,是国内的大多测试岗位是功能测试为主,在工作时间中,我们 ...
- python面向对象编程(下)
本篇详细介绍了Python 中类的成员.成员修饰符.类的特殊成员以及两个综合运用实例. 环境为:python3.5.1 类的成员 类的成员包括三大类:字段.方法和property属性 注:关于这三类成 ...
- 6/20 sprint3 看板和燃尽图的更新