客戶端
#include
#include
#include
#include
#include
#include
#define buf_size 1024
#define rlt_size 4
#define opsz 4
void error_handling(char *message);
int main(int argc, char * argv)
sock = socket(pf_inet, sock_stream, 0); //初始化套接字
if(sock == -1)
memset(&serv_adr, 0, sizeof(serv_adr)); //初始化為0
serv_adr.sin_family = af_inet; //使用ipv4
serv_adr.sin_addr.s_addr = inet_addr(argv[1]); //第乙個位元組為ip位址
serv_adr.sin_port = htons(atoi(argv[2])); //第二個為埠號
if(connect(sock, (struct sockaddr *)&serv_adr, sizeof(serv_adr)) == -1) //鏈結套接字和位址
error_handling( "connect() error! " );
else
puts("connected.....");
fputs("operand count: ", stdout);
scanf("%d", &opnd_cnt);
opmsg[0] = (char)opnd_cnt; //將乙個 個數 按照位元組模式輸入到緩衝區
for(i = 0; i < opnd_cnt; i++)
fgetc(stdin);
fputs("operator:", stdout);
scanf("%c", &opmsg[opnd_cnt*opsz+1]);
write(sock, opmsg, opnd_cnt*opsz+2); //傳送到伺服器
read(sock, &result,rlt_size); //得到結果
printf("result %d\n",result);
close(sock);
return 0;
}void error_handling(char *message)
serv_sock=socket(af_inet,sock_stream,0); //初始化套接字
memset(&serv_adr, 0, sizeof(serv_adr)); //將結構體清零
serv_adr.sin_family = af_inet; //設定協議族 使用ipv4
serv_adr.sin_addr.s_addr = htonl(inaddr_any); //接受任意位址
serv_adr.sin_port = htons(atoi(argv[1])); //第二個引數為埠號
if(bind(serv_sock, (struct sockaddr*)&serv_adr, sizeof(serv_adr))== -1) //繫結位址
if(listen(serv_sock, 5) == -1) //監聽 隊列為5
error_handling("listen() error!");
clnt_adr_sz = sizeof(clnt_adr);
for(i = 0; i < 5; i++)
result = calculate(opnd_cnt, (int*)opinfo, opinfo[recv_len-1]); // 第乙個為 數字個數 陣列 符號
printf("result = %d\n", result); //輸出結果
write(clnt_sock, (char*)&result, sizeof(result)); //向客戶端寫結果
close(clnt_sock); //關閉鏈結的套接字
} close(serv_sock); //關閉鏈結客戶端的套接字
return 0;
}int calculate(int opnum, int opnds, char op)
break;
case '-':
for(i = 1; i < opnum; i++)
result-= opnds[i];
break;
case'*':
for(i = 1; i < opnum; i++)
result*=opnds[i];
break;
//case'/':
//for(i = 1; i < opnum; i++)
//result/=opnum[i];
//break;
}return result;
}void error_handling(char *message)
網路程式設計 實現迭代回聲伺服器端 客戶端
1.直接跳轉到linux端 2.直接跳轉到windows端 掌握tcp套接字工作原理。在linux和windows作業系統上編寫迭代伺服器端 客戶端。讓伺服器端以迭代方式執行,為多個客戶端提供回聲服務。1 在linux作業系統上編寫程式,實現迭代回聲伺服器端 客戶端 1 改進實驗一中實現的hello...
C 回聲伺服器 2 修復客戶端問題
c 回聲伺服器 1 簡單版本中的問題出在客戶端。客戶端通過write函式一次性傳送資料,過一段時間再呼叫一次read函式,期望接收傳輸的資料。問題在於這段時間到底是多久?理想的客戶端應在接收到資料時立即讀取資料。客戶端傳送資料時,可以知道資料的大小 長度 客戶端接收資料的時候,可以知道接收到資料的大...
C 回聲伺服器 2 修復客戶端問題
c 回聲伺服器 1 簡單版本中的問題出在客戶端。客戶端通過write函式一次性傳送資料,過一段時間再呼叫一次read函式,期望接收傳輸的資料。問題在於這段時間到底是多久?理想的客戶端應在接收到資料時立即讀取資料。客戶端傳送資料時,可以知道資料的大小 長度 客戶端接收資料的時候,可以知道接收到資料的大...