/* file name: client.c */
#include#include#include#include#include#include#include#define maxline 4096
int main(int argc, char** argv)
while(1)
//初始化
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = af_inet;
servaddr.sin_port = htons(8000);
if( inet_pton(af_inet, argv[1], &servaddr.sin_addr) <= 0)
//連線失敗
if( connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0)
printf("send msg to server: \n");
fgets(sendline, 4096, stdin);
if( send(sockfd, sendline, strlen(sendline), 0) < 0)
if((rec_len = recv(sockfd, buf, maxline,0)) == -1)
buf[rec_len] = '\0';
printf("received : %s ",buf);
} close(sockfd);
exit(0);
} /* file name: server.c */
#include#include#include#include#include#include#include#define default_port 8000
#define maxline 4096
int main(int argc, char** argv)
//初始化
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = af_inet;
servaddr.sin_addr.s_addr = htonl(inaddr_any);//ip位址設定成inaddr_any,讓系統自動獲取本機的ip位址。
servaddr.sin_port = htons(default_port);//設定的埠為default_port
//將本地位址繫結到所建立的套接字上
if( bind(socket_fd, (struct sockaddr*)&servaddr, sizeof(servaddr)) == -1)
//開始監聽是否有客戶端連線
if( listen(socket_fd, 10) == -1)
printf("*****=waiting for client's request*****=\n");
while(1)
//接受客戶端傳過來的資料
n = recv(connect_fd, buff, maxline, 0);
buff[n] = '\0';
printf("recv msg from client: %s", buff);
//向客戶端傳送回應資料
printf("send msg to client: \n");
fgets(sendline, 4096, stdin);
if(send(connect_fd, sendline, 26,0) == -1)
perror("send error");
close(connect_fd);
} close(socket_fd);
}
網路程式設計 Socket程式設計
一 網路部分 1.ip 2.埠號 在網路協議中使用埠號識別主機上不同的程序,不同的埠對應於不同的服務 應用程式 3.協議 tcp二 socket部門socket通訊基本流程圖 根據socket通訊基本流程圖,總結通訊的基本步驟 伺服器端 第一步 建立乙個用於監聽連線的socket對像 第二步 用指定...
socket網路程式設計
首先認識乙個表示主機資訊的結構體 struct hostent h addrtype 這是表示主機所使用的位址型別的定義,在c語言winsock2.h標頭檔案中以 af 開頭的巨集定義就是它的值。如果使用的是ipv4,則值為 af inet 如果是ipv6,值為 af inet4 h length ...
Socket網路程式設計
socket 網路程式設計 在c free中建立乙個對話方塊工程,取名socket1,建立如下檔案結構 main.h ifndef main h define main h include bool winapi main proc hwnd hwnd,uint umsg,wparam wparam...