[網路應用與技術] Assignment #1 問題回應 1
不好意思 我臨時想不到標題 有同學有寫信來詢問 我在此作一個說明
1. Server的執行方式 : Server的執行方式在文件上有說明, 有同學問說打./server
不能執行, 如果這樣的述敘沒有遺漏的話。應該是你少打參數了
文件上有寫server的執行是要打
./server <server listenning port><space><-option> 請看一下文件的說明
如果還是不能執行, 請把錯誤訊息PO出來一下。
2. Buffer size : 這部分我忘了提及很抱歉,Server的receive buffer size為30(bytes)
所以每次client與server的溝通不能超過30字元。
3. Client傳給Server的資料格式:Client傳給Server的資料都是字元,
不要有其他資料型態,server不會做任何marshelling的工作。
至於如何將數字轉成字元,方法有二:
a) in C: sprintf
#include <stdio.h>
char out[20];
int num=24;
sprintf( result, "%d", num );
b) in C++:
#include<sstream>
string intToStr(const int& k)
{
ostringstream oss;
oss << k;
return oss.str();
}
4. Client的available port有幾個: 1個。
這邊available port的意思相當於server的listenning port,就是指其他client
想聯絡你要經由哪一個port。
e.g A想跟B交談,於是主動發出connection到B的available port(say 5566)
B在port 5566要有個listen的動作,而如果有一個C想跟A交談,一樣的,C要
主動發出connection到A的available port(say 5566,too),A也要在port 5566
有個listen的動作,那如果D也想與A交談呢?一樣的,D要主動發出connection
到A的5566 port。
那至於A,C,D主動發出connection時要用那個port呢? 這個就沒有限定了
只要不是available port(listenning port)就好了。
這邊的觀念很重要,但有時候不是那麼容易懂,同學可以好好的看一下port的觀念。
也可以超前預習到第三章transportation layer的部分幫助釐清觀念。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.107.41
※ 編輯: mcamory 來自: 140.112.107.41 (11/06 10:49)
※ 編輯: mcamory 來自: 140.112.107.41 (11/06 10:50)