编写简单的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"结束通信后,服务器是无法立即重启的,如果尝试重启服务器,将被 ...
随机推荐
- 【Android学习】四种布局方式
一.LinearLayout 线性布局,即一行展开或者一列展开,也可以嵌套,需要注意的属性如下: android:orentation //对齐方式 二.FrameLayout 帧布局,即一层层叠起 ...
- main函数读取jar包外部的配置文件properties
首先,Java的main方法有个初始化入参args,如下所示: public static void main(String[] args) {} 然后,在linux下执行jar包引入外部配置文件的命 ...
- Apk去签名校验详解
某些apk为了防止重打包,使用了签名校验.所以在破解的时候我们需要破解签名校验.在定位签名校验位置时常用的关键词有sign,signature,checkSign,signCheck,getPacka ...
- iOS时间那点事儿–NSTimeZone
NSTimeZone **时区是一个地理名字,是为了克服各个地区或国家之间在使用时间上的混乱. 基本概念: GMT 0:00 格林威治标准时间; UTC +00:00 校准的全球时间; CCD +08 ...
- Js调用Java方法并互相传参
Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. import org.json.JSONArray; import ...
- MVC过滤器中获取实体类属性值
本文地址:http://www.cnblogs.com/outtamyhead/p/3616913.html,转载请保留本地址! 最近在项目遇到了这个问题:获取Action行参中实体类的属性值,主要的 ...
- EditorWindow中手动控制焦点
在Unity3D中制作编辑器的时候,有时候会需要手动控制界面上控件的焦点,与此相关的有三个函数都在下面的示例代码中了: public void Test() { // 给控件命名 GUI.SetNex ...
- Sqoop实现关系型数据库到hive的数据传输
Sqoop实现关系型数据库到hive的数据传输 sh脚本 #!/bin/sh v_columns=NOTE_ID_1,NOTE_NAME_1,NOTE_ID_2,NOTE_NAME_2,NOTE_ID ...
- I'm back for Machine Learning
Hi, Long time no see. Briefly, I plan to step into this new area, data analysis. In the past few yea ...
- Hadoop入门进阶课程13--Chukwa介绍与安装部署
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan ...