freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于linux網(wǎng)絡(luò)聊天室的設(shè)計(jì)-文庫吧資料

2025-06-24 17:06本頁面
  

【正文】 的能力。通過此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)Linux方面的知識(shí),在設(shè)計(jì)過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。但是由于課程設(shè)計(jì)時(shí)間較短,還有許多不盡如人意的地方,還有待于我們進(jìn)一步完善其功能。6 結(jié)束語這次課程設(shè)計(jì)可謂收獲頗大,首先從一開始對(duì) linux一無所知甚至是畏懼 ,到做完實(shí)驗(yàn)后有了一定程度的了解,如果沒有這次實(shí)驗(yàn) ,我想我很難有機(jī)會(huì)去接觸從而進(jìn)一步熟悉 linux這個(gè)操作系統(tǒng)以及在 ,系統(tǒng)信息和狀態(tài)的讀取 ,特別是最后一個(gè)實(shí)驗(yàn)應(yīng)該說比較具有代表性 ,是一個(gè)很好的 linux環(huán)境下編程的例子 .也讓我從中學(xué)到了不少 linux的知識(shí).經(jīng)過近了兩周的設(shè)計(jì)和開發(fā),網(wǎng)絡(luò)聊天室的設(shè)計(jì)設(shè)計(jì)完畢。 客戶端發(fā)送消息3) 鍵入exit結(jié)束。開始運(yùn)行后,客戶端窗口的執(zhí)行順序?yàn)椋?) 接收服務(wù)器端發(fā)來的消息“hinihao”。 服務(wù)器發(fā)送消息2) 接收客戶端發(fā)來的”ni hao”。1) 客戶端、服務(wù)器端窗皆通過鍵盤輸入消息內(nèi)容平回車,以發(fā)送消息給對(duì)方;2) 消息中若使用空格,則作為本條消息結(jié)束及下一條消息的開始;3) 輸入exit則推出運(yùn)行。(4)再打開另一個(gè)窗口或者在另一個(gè)主句上打開一個(gè)窗口,運(yùn)行client,輸入服務(wù)器的IP地址,并檢查器結(jié)果的正確性。5 運(yùn)行效果(1),用 gcc –lpthread –o server 生成程序server。(3) 主機(jī)接收請(qǐng)求,進(jìn)行數(shù)據(jù)通信1)主機(jī)利用accept接收請(qǐng)求。2)初始化socket端口。my_addr,sizeof(stuct sockaddr))。 /* 將端口給其賦值*/=INADDR_ANY。=AF_INET。參數(shù)說明: inet_addr 函數(shù) INADDR_ANY該函數(shù)把由小數(shù)點(diǎn)分開的十進(jìn)制IP地址轉(zhuǎn)為unsinged long 類型,而在實(shí)驗(yàn)中所使用的為INADDR_ANY,使用利用自已的IP地址自動(dòng)填充。(8)有關(guān)線程的系統(tǒng)調(diào)用函數(shù)pthread_create()、pthread_join() 系統(tǒng)實(shí)現(xiàn)過程說明(1) 監(jiān)聽連接 利用socket、bind、listen建立連接,步驟是:1) 先用socket函數(shù)初始化socket,創(chuàng)建新的sockfd。(7)close( ) 和 shutdown ( )格式: Close( int sockfd)或 Int shutdown(int sockfd , int how)。 格式2: Int recv (int sockfd , void *buf,int len, usigned int flags)。(6)send() 和 recv() 格式1: Int send (int sockfd, const vod *msg,int len, int flags)。 參數(shù)作用: Sockfd:表示socket的文件描述符。(5)connect()格式: int connect( int sockfd , struct sockaddr *serv_addr , int addrlen)。 Addr:表示指向局部的數(shù)據(jù)結(jié)構(gòu)struct sockaddrin的指針。 作用:與listen函數(shù)合用,監(jiān)聽信息、接收客戶端請(qǐng)求。 Backlog:表示接入隊(duì)列允許的連接數(shù)目,大多數(shù)系統(tǒng)允許20個(gè),也可以子定義5~10個(gè)。 作用:監(jiān)聽連接信號(hào),和accepted函數(shù)合同。 Sockaddr:表示名字所用的一個(gè)數(shù)據(jù)結(jié)構(gòu),用來保存地址(包括IP地址和端口) Addrlen:設(shè)置結(jié)構(gòu)大小長度。(2)bind( )格式: int bind(int sockfd,struct sockaddr *addr,int addrlen)。Type:網(wǎng)絡(luò)程序所采用的通信協(xié)議,可以取SOCK_STREAM或SOCK_DGRAM。其中,AF_UNLX只能夠用于單一的UNIX系統(tǒng)進(jìn)程間通信。4系統(tǒng)實(shí)現(xiàn)(1)Socket() 作用:socket函數(shù)為客戶機(jī)或服務(wù)器創(chuàng)建一個(gè)sokcet格式:int socket(int family,int type,int protocol)。通信結(jié)束后調(diào)用Close()關(guān)閉套接字描述符??蛻舳耍禾捉涌趧?chuàng)建函數(shù)Socket(),套接口連接函數(shù)Connect(),數(shù)據(jù)收發(fā)函數(shù)Read()和Write(),以及套接口關(guān)閉函數(shù)Close()。所以多個(gè)客戶端之間的通信就變?yōu)榱丝蛻舳伺c服務(wù)端的通信。其次,網(wǎng)間進(jìn)程通信完全是異步的,相互通信的進(jìn)程間既不存在父子關(guān)系,又不共享內(nèi)存緩沖區(qū),因此需要一種機(jī)制為希望通信的進(jìn)程間建立聯(lián)系,為二者的數(shù)據(jù)交換提供同步,這就是客戶端/服務(wù)器模式的TCP/IP。model),即客戶向服務(wù)器發(fā)出服務(wù)請(qǐng)求,服務(wù)器接收到請(qǐng)求后,提供相應(yīng)的服務(wù)。因此,對(duì)于從每個(gè)客戶端發(fā)來的請(qǐng)求,服務(wù)器端都要?jiǎng)?chuàng)建相應(yīng)的線程去接收并處理;同理,對(duì)于客戶端而言,也要?jiǎng)?chuàng)建一個(gè)線程去讀取服務(wù)器端發(fā)來的信息。因此,本實(shí)驗(yàn)需要使用兩個(gè)線程去分別完成發(fā)送和接收信息的任務(wù),這兩個(gè)線程共享其進(jìn)程擁有的統(tǒng)一個(gè)端口地址。因此,不能通過創(chuàng)建進(jìn)程方式來解決上訴問題,因?yàn)閮蓚€(gè)進(jìn)程會(huì)分別對(duì)應(yīng)兩個(gè)不同的端口,而發(fā)送和接收必須使用同一端口。這樣,當(dāng)接收信息任務(wù)因沒有信息而被阻塞時(shí),不至于影響發(fā)送任務(wù)的執(zhí)行。使用一個(gè)進(jìn)程去完成發(fā)送信息是沒有問題的,因?yàn)榘l(fā)送總是主動(dòng)的;而使用同一個(gè)進(jìn)程再去完成接受信息去不一定會(huì)成功,因?yàn)榻邮苄畔⑹潜粍?dòng)的,所以當(dāng)沒有信息可以接收時(shí),該進(jìn)程就會(huì)被阻塞,從而導(dǎo)致發(fā)送任務(wù)也一起被阻塞。而每個(gè)進(jìn)程進(jìn)行通信的環(huán)節(jié)都包括了發(fā)送信息和接口信息兩個(gè)任務(wù),這兩個(gè)任務(wù)通過一個(gè)端口地址發(fā)送和接收。這是通過Socket實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信需要掌握的4個(gè)編程要點(diǎn)。(3) 按要求通過socket發(fā)送和接受數(shù)據(jù)。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1