当前位置:首页 » 云服务器 » 服务器端和客户端的搭建实验设计

服务器端和客户端的搭建实验设计

发布时间: 2022-11-21 00:56:09

❶ 用C#在一台机器上实现服务器和客户端之间的通信(socket的小实验),哪位高手给我看看怎么编写

socket_client
---------------------------------------------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace socket_client
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
IPEndPoint end;
Socket s;
Thread td;

private void button1_Click(object sender, EventArgs e)
{
try
{
int port = Int32.Parse(textBox2.Text.Substring(textBox2.Text.LastIndexOf(":") + 1));
IPAddress ip = IPAddress.Parse(textBox1.Text.Substring(textBox1.Text.LastIndexOf(":") + 1));
end = new IPEndPoint(ip, port);

}
catch
{
MessageBox.Show("输入有误!!");
textBox1.Text = "IP:";
textBox2.Text = "端口:";
return;
}

try
{
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Connect(end);
label1.Text = "成功联接上服务器 " + textBox1.Text + ":" + textBox2.Text;
td = new Thread(new ThreadStart(bb));
td.IsBackground = true;
td.Start();
}
catch
{
label1.Text = "联接失败服务器!! ";
}

}

void bb()
{
while (true)
{

byte[] bb = new byte[1024];
int i= s.Receive(bb); //接收数据,返回每次接收的字节总数
string removeMsg = Encoding.Unicode.GetString(bb,0,i);

if (removeMsg == "cmd---exit")//收到的是退出通知
{
richTextBox1.Text = "";
label1.Text = "无连接";
DialogResult re=MessageBox.Show("服务器已经关闭.\n\"确定\"后退出程序,\n\"取消\"继续停留!", "消息提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);

MessageBox.Show(re.ToString());
if (re == DialogResult.OK)
{
sendExit();//告诉服务器我退出了
Application.Exit();
}
return;
}
richTextBox1.AppendText(removeMsg) ;
richTextBox1.ScrollToCaret();

}
}

private void button2_Click(object sender, EventArgs e)
{
string msg = "客户端说:" + richTextBox2.Text+"\n";
richTextBox1.AppendText(msg);
byte[] by = Encoding.Unicode.GetBytes(msg);
s.Send(by);
richTextBox2.Text = "";
richTextBox2.Focus();
richTextBox1.ScrollToCaret();

}

void sendExit()
{
string msg = "cmd---exit";
byte[] by = Encoding.Unicode.GetBytes(msg);
s.Send(by);
}
}
}

socket_server
-----------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace socket_server
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
label1.Text = "监听端口" + Dns.GetHostByName(Dns.GetHostName()).AddressList[0] + ":" + Int32.Parse(textBox1.Text.Substring(textBox1.Text.LastIndexOf(":") + 1)) + "中......";
Thread td = new Thread(new ThreadStart(aa));
td.Start();
if (button1.Text == "开始监听")
{
button1.Text = "停止监听";

return;
}
else
{
sendExit();
ss.Shutdown(SocketShutdown.Both);
s.Close();
td.Abort();
label1.Text = "停止监听!";
richTextBox1.Text = "";
button1.Text = "开始监听";

}
}

void sendExit()
{
string msg = "cmd---exit";
byte[] by = Encoding.Unicode.GetBytes(msg);
ss.Send(by);
}
Socket s;
Socket ss;
void aa()
{

int port = Int32.Parse(textBox1.Text.Substring(textBox1.Text.LastIndexOf(":") + 1));

IPEndPoint end = new IPEndPoint(Dns.GetHostByName(Dns.GetHostName()).AddressList[0], port);
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Bind(end);
s.Listen(5);
ss=s.Accept();
if (ss.Connected)
{
label1.Text = "有客户端联接上端口:"+textBox1.Text;
while (true)
{
byte[] by = new byte[1024];
int i = ss.Receive(by);
string msg = Encoding.Unicode.GetString(by, 0, i);
if (msg == "cmd---exit")
{
label1.Text = "客户端已经取消连接!";
return;
}
richTextBox1.AppendText(msg);
richTextBox1.ScrollToCaret();
}
}

}

private void button2_Click(object sender, EventArgs e)
{
string m = "服务器说:" + richTextBox2.Text + "\n";
richTextBox1.AppendText(m);
byte[] by = Encoding.Unicode.GetBytes(m);
ss.Send(by);
richTextBox2.Text = "";
richTextBox2.Focus();
richTextBox1.ScrollToCaret();
}

private void button3_Click(object sender, EventArgs e)
{
string w="123455";
MessageBox.Show(w.Substring(0));
}
}
}

❷ 跪求:使用socket进行通信程序设计,编写一个网络通信应用程序,包括服务器端和客服端两个程序。

网络知道里有很多:
http://..com/q?word=socket%CD%A8%D0%C5%CA%B5%CF%D6C%2FS%B3%CC%D0%F2%B5%C4%BB%F9%B1%BE%B7%BD%B7%A8&ct=17&pn=0&tn=ikaslist&rn=10&fr=qrl&cid=93&fr2=query

❸ 用C#设计一个客户端和服务器端,实现数据网络聊天和文件传送功能,具体的要求如下

分真多。要求真多。聊天软件我有,加密没写。

❹ 谁能帮我做一下计算机网络的实验报告,这里不能放图片,抱歉

用手机拍图片上传就行了,可以用word做成表格,再把内容一粘贴复制。打开word,在插入选项里找插入表格,根据需要设置,表格可以合并拆分,很好弄,拓扑图可以在Smart中插入,也可以增加表格

❺ Android app开发 搭建服务器

首先,先别用花生壳,我之前用过,会攻击电脑,ip被改的很奇怪。如果想让外网访问服务器的话,可以试试美步。
然后,服务器搭建服务器方法挺多的,我现在是用MyEclipse+sqlserver2008,服务器端写jdbc代码,生成json格式的数据,返回给客户端,客户端json解析得到数据显示在UI上。json格式说白了就是一组组的字符串。
关机问题:你的电脑如果搭建了服务器功能了,那你的那台电脑就已经是服务器了,服务器是一般是不会关机的,关机之后,客户端当然不能再访问服务器了。
全部是根据自己的理解手打,希望帮到你。

❻ 如何编写多客户端访问数据库的软件大致结构

其实就是C/S架构。数据库放在服务器端,首先你在开发客户端的时候,需要创建一个数据库连接,连接直接指向服务器的地址以及数据库名称(这个和B/S架构是一样的)。然后,你从这个连接上创建创建你客户端上的数据库实例,比如数据库、表和存储过程等。多客户端(其实就是多用户)需要注意的就是并发的问题,也就是当多个用户同时操作某段数据时应该如何处理(如排队,死锁等),这个是难点。当然,如果你的用户数非常少,那这部分的设计就比较简单,你简单的用存储过程、事务和触发器来完成。
硬件方面,你需要两天电脑(一台客户端,一台服务器),或者更多,当然一台电脑同时实现客户端和服务器也是可以的。网络上只要能互相访问就可以了。

linux NFS服务器的搭建、客户端如何使用服务器资源

举例,有台机器叫AAA,想把自己机器根下的一个叫abc的目录极其里面的所有文件都共享给一台叫BBB的机器。
在这里AAA就可看成是服务器,BBB为客户端,方法如下:
(在AAA上先配置)
1.
vi
/etc/exports
(用vi编辑器打开共享资源,在里面填写共享的属性,linux下nfs的共享资源路径为etc下的exports)
打开编辑器后,里面可能什么都没有,需要自己填写,然后保存即可,在这里填写
2.
/abc
BBB(ro)
之后按Esc停止文字录入,然后按Shift+;键,在出来的冒号后输入wq,表示保存退出!
(这个的格式是这样的:先给出要共享的路径,然后空格,后面写共享给谁,可以是IP地址或主机名。再后面的括号里表示以什么方式来共享,ro是客户端只能读,如果想让客户端可以改,可设为rw,即可读写)
3.
service
portmap
start
service
nfs
start
ntsysv
(这是3行不同的命令,第一个是将portmap服务打开,也就是先打开nfs共享通讯的端口,第二个是开启nfs服务,第三步是进入一个图像画面,在里面找到nfs服务,然后用空格选择上,以保证下次机器启动时,系统会自动运行nfs服务的意思)
在客户段操作如下:
mkdir
/abc
mount
AAA:/abc
/abc
service
portmap
start
service
nfs
start
ntsysv
第一步是在本机的根上建立一个叫abc的目录
第二步是将AAA机器上的abc目录挂载到本机的abc目录上
第三步和第四步是启动客户端的端口和服务
最后一步是保证下次系统启动时自动运行什么服务
说了这么多,应该够详细了吧?
*^_^*

❽ 基于linux的小型远程FTP服务系统的设计

太多了 没时间看 得工作 时间不允许 哥们还是自己写吧

java的服务器和客户端怎么做

楼上的太长了吧,我写个简单的
import java.net.*;
import java.io.*;
import java.util.*;

/**
* TCP协议下单向通信的客户端程序。
* @author new
*
*/
public class TCPClientA {
public static void main(String[] args) {
Socket s=null;
try {
s=new Socket("127.0.0.1",8888);
BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
String str=br.readLine();
System.out.println(str);
} catch (Exception e) {
e.printStackTrace();
}finally{
if(s!=null)try{s.close();}catch(IOException e){}
}
}
}

================================

import java.net.*;
import java.io.*;
import java.util.*;

/**
* TCP协议下单向通信的服务器端程序。
* @author new
*
*/
public class TCPServerA {
public static void main(String[] args) {
ServerSocket ss=null;
Socket s=null;
PrintStream ps=null;
try {
ss=new ServerSocket(8888);
while(true){
System.out.println("服务器已启动,在8888端口:");
s=ss.accept();
System.out.println("得到 "+s.getInetAddress()+" 的连接请求...");
ps=new PrintStream(s.getOutputStream());
ps.println(new Date());
ps.flush();
System.out.println("已向客户端发送数据!");
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(ps!=null)ps.close();
if(s!=null)try{s.close();}catch(IOException e){}
if(ss!=null)try{ss.close();}catch(IOException e){}
}

}

}

❿ 怎么搭建本地SVN服务

方法/步骤
TortoiseSVN下载和安装。在网络输入“TortoiseSVN”或者在其他网站上面下载TortoiseSVN。注意如果你只是本地使用svn服务器,这个软件就够了。如果是服务器上面搭建svn的应用环境就不能使用这个,关注我的其他文章有专门的介绍哦。这里我们下载“TortoiseSVN”的最新版本:1.8.10.26129。
注意:网络里面直接下载是32位版本,如果你是64位,则需要特别指定是64位哦。

如果下载到不是跟系统对应的版本,安装的时候会出现如下提示。

安装TortoiseSVN软件。我的系统是64位的,所以我这里的截图就64位版本的哦。根据操作提示选择操作,并且点击下一步执行安装。

创建准备存放svn服务器的目录。先在磁盘空间大一点的地方创建一个空目录,如:e:\localsvn

创建本地svn服务器。在刚刚创建目录图标上面,点击右键,选择菜单里面的“TortoiseSVN”下面的“在此创建版本库”项。创建好后,打开此目录,可以看到目录里面已经有很多的目录和文件了,这个就表示成功了。刚才创建的svn服务器路径或者管理地址:file:///E:\localsvn

在程序目录使用本地svn服务。在需要此svn服务的空白目录,导出此版本库。在空白目录图标上面右键,在弹出的菜单里面选择导出。在导出窗口里面设置本地svn服务去路径:file:///E:\localsvn。确定后,导出完成。打开刚才导出的目录,看看已经和本地svn服务器关系上了。
更多关于svn使用方法,后面将有专门文章来介绍,敬请关注后续文章吧。

热点内容
编程软件基础培训 发布:2025-01-11 12:20:20 浏览:287
imeet网站服务器地址 发布:2025-01-11 12:15:35 浏览:331
ps缓存时间 发布:2025-01-11 11:55:36 浏览:865
云服务器容灾 发布:2025-01-11 11:51:40 浏览:682
phparraysplice 发布:2025-01-11 11:51:40 浏览:320
android学习源码 发布:2025-01-11 11:26:23 浏览:413
服务器都坏了如何恢复 发布:2025-01-11 11:24:04 浏览:354
微博缓存的图片能清理吗 发布:2025-01-11 11:01:49 浏览:308
文字加密器 发布:2025-01-11 11:01:08 浏览:455
vc60非静态编译 发布:2025-01-11 10:51:32 浏览:615