###一.基本步驟
1.客戶端
a.建立套接字
b.繫結自己,指定對方
c.發出連線請求
d.收發訊息
e.關閉套接字
2.服務端
a.建立套接字
b.繫結自己
c.監聽
d.建立連線
e.收發訊息
f.關閉套接字
###二.基本練習
server.c
#include
//printf
#include
//套接字函式
#include
//套接字函式
#include
//位元組序轉換
#include
//位元組序轉換
#include
//執行緒
#include
//bzero
//開啟執行緒,接收訊息
void
*rec_info
(void
*p)}
//發訊息
intmain()
//繫結自己
struct sockaddr_in myaddr,clientaddr;
myaddr.sin_family = af_inet;
myaddr.sin_port =
htons
(22333);
myaddr.sin_addr.s_addr =
inet_addr
("127.0.0.1");
if(bind
(sockfd,
(struct sockaddr *
)&myaddr,
sizeof
(myaddr)
)<0)
//監聽
listen
(sockfd,5)
;//建立連線
int len =
sizeof
(clientaddr)
;int connfd =
accept
(sockfd,
(struct sockaddr *
)&clientaddr,
&len);if
( connfd<0)
pthread_t id;
pthread_create
(&id,
null
,rec_info,
(void*)
&connfd)
;//傳送訊息
char buf[
1024];
while(1
)//關閉描述符
}
client.c
#include
//printf
#include
//套接字函式
#include
//套接字函式
#include
//位元組序轉換
#include
//位元組序轉換
#include
//bzero
#include
//開執行緒收訊息
void
*recv_info
(void
*p)}
intmain()
//指定對方,繫結自己
struct sockaddr_in myaddr,seraddr;
myaddr.sin_family = af_inet;
myaddr.sin_port =
htons
(22336);
myaddr.sin_addr.s_addr =
inet_addr
("127.0.0.1");
if(bind
(sockfd,
(struct sockaddr *
)&myaddr,
sizeof
(myaddr)
)<0)
seraddr.sin_family = af_inet;
seraddr.sin_port =
htons
(22333);
seraddr.sin_addr.s_addr =
inet_addr
("127.0.0.1");
//發起連線
int n =
connect
(sockfd,
(struct sockaddr *
)&seraddr,
sizeof
(seraddr));
if( n<0)
//開執行緒發訊息
pthread_t id;
pthread_create
(&id,
null
,recv_info,
(void*)
&sockfd)
;//收訊息
int len =
sizeof
(seraddr)
;char buf[
1024];
while(1
)//關閉描述符
}
Linux網路程式設計筆記day2(程序)
exec函式族 execlp p path 系統可執行程式 execl l list 使用者自定義可執行程式 execv v argv 命令列引數 execvp execve e environment 環境變數 只有失敗返回值 1 wait 殭屍程序 子程序結束,父程序沒有 子程序 注 如果想要 ...
程式語言 day 2
標準庫提供的一次讀寫乙個字元的函式 test 3 將輸入一次乙個字元的複製到輸出 include int main putchar c 輸出 printf count d,line d,space d n count,line,space return 0 檔案結束 eof end of file ...
python程式設計基礎day2
使用input輸入 input用於輸入資料給變數,無論輸入什麼都是字串 input括號中字串用於提示使用者,不用輸入 age input 請輸入你的年齡 print age 把字串age轉換為整型資料 age int age 轉換為浮點數 age float age print函式 作用 將資料顯示...