伺服器端和客戶端的搭建實驗設計
❶ 用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使用方法,後面將有專門文章來介紹,敬請關注後續文章吧。