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

正文內(nèi)容

基于unix平臺(tái)的tcpip協(xié)議的通信程序設(shè)計(jì)-資料下載頁(yè)

2025-10-11 15:23本頁(yè)面

【導(dǎo)讀】功能要求能將鍵盤上輸入的數(shù)據(jù)發(fā)送到另一臺(tái)計(jì)算機(jī)上;能將接收到的數(shù)據(jù)顯示到屏幕窗口內(nèi);首先:虛擬機(jī)上新建RedhatLinux5系統(tǒng),配置虛擬ip地址。作為客戶機(jī)最基本的要求得到對(duì)方。在Linux下的ip地址。們來(lái)開發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序。要學(xué)Inter上的TCP/IP網(wǎng)絡(luò)編程,必須理解Socket. 連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^(guò)該Socket實(shí)現(xiàn)的。據(jù)報(bào)式Socket是一種無(wú)連接的Socket,對(duì)應(yīng)于無(wú)連接的UDP服務(wù)應(yīng)用。是tcp/IP協(xié)議的通信程序設(shè)計(jì),所以用的是流式的socket編程。Socket建立socket函數(shù)原型為:intsocket;實(shí)際上"建立一個(gè)Socket"意味著為一個(gè)Socket數(shù)據(jù)結(jié)構(gòu)分配存儲(chǔ)空間。domain指明所使用的協(xié)議族,通常為PF_INET,表示互聯(lián)網(wǎng)協(xié)議族;Socket數(shù)據(jù)結(jié)構(gòu)中包含這五種信息。達(dá)的服務(wù)請(qǐng)求保存在此隊(duì)列中,直到程序處理它們。Sockfd是Socket系統(tǒng)調(diào)用返回的socket描述符;backlog指定在請(qǐng)求隊(duì)列中允許的最大請(qǐng)。務(wù)的請(qǐng)求的數(shù)目進(jìn)行了限制,大多數(shù)系統(tǒng)缺省值為20。

  

【正文】 *msg, size_t len, int flags) { int ret。 ret=send(s,msg,len,flags)。 if (ret==1) { perror(send error\n)。 exit(1)。 } return ret。 } ssize_t my_recv(int s, void *buf, size_t len, int flags) { int recvvalue。 recvvalue=recv(s,buf,len,flags)。 if (recvvalue==1 ) { perror(recv error\n)。 exit(1)。 } 通信網(wǎng)絡(luò)設(shè)計(jì)課程設(shè)計(jì) 題號(hào): u1 設(shè)計(jì)日期 20200104 20200115 return recvvalue。 } int my_close(int s) { int ret。 ret = close(s)。 if (ret==1) { perror(close error\n)。 exit(1)。 } return ret。 } int my_shutdown(int s, int how) { int ret。 ret=shutdown(s,how)。 if (ret==1) { perror(shutdown error\n)。 exit(1)。 } return ret。 } ssize_t writen(int fd, const void * vptr, size_t n) { size_t nleft。 ssize_t nwritten。 const char * ptr。 ptr = vptr。 nleft = n。 while (nleft 0) { if ((nwritten = write(fd, ptr, nleft)) = 0) {if (nwritten 0 amp。amp。 errno == EINTR) nwritten = 0。} else return 1。 nleft = nwritten。 通信網(wǎng)絡(luò)設(shè)計(jì)課程設(shè)計(jì) 題號(hào): u1 設(shè)計(jì)日期 20200104 20200115 ptr += nwritten。 } return n。 } ssize_t readline(int fd, void * vptr, size_t maxlen) { ssize_t n, rc。 char c, *ptr。 ptr = vptr。 for (n = 1。 n maxlen。 n++) { again: if ((rc = read(fd, amp。c, 1)) == 1) { *ptr++ = c。 if (c == 39。\n39。) { break。 } } else if (rc == 0) { /* EOF */ *ptr = 0。 return (n 1)。 } else { if (errno == EINTR) { goto again。 } return (1)。 } } *ptr = 0。 return (n)。 } sig_t my_signal(int signum, sig_t handler) { struct sigaction act, oact。 = handler。 sigemptyset(amp。)。 = 0。 if (sigaction(signum, amp。act, amp。oact) 0) { return (SIG_ERR)。 通信網(wǎng)絡(luò)設(shè)計(jì)課程設(shè)計(jì) 題號(hào): u1 設(shè)計(jì)日期 20200104 20200115 } return ()。 } pid_t my_fork() { int pid。 pid=fork()。 if (1==pid) { printf(fork error\n)。 exit(1)。 } return pid。 } int createthread(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg) { int pthread。 pthread=pthread_create(thread, attr, start_routine,arg)。 if (ENOMEM==pthread) { printf(沒(méi)有足夠空間產(chǎn)生另一線程 !\n)。 exit(1)。 } if (EINVAL==pthread) { printf(無(wú)效 attr值 !\n)。 exit(1)。 } if (EPERM==pthread) { printf(調(diào)用者無(wú)權(quán)設(shè)置調(diào)度參數(shù)或策略 !\n)。 exit(1)。 } return 0。 } struct hostent *my_gethostbyname(char *name) 通信網(wǎng)絡(luò)設(shè)計(jì)課程設(shè)計(jì) 題號(hào): u1 設(shè)計(jì)日期 20200104 20200115 { struct hostent *change。 change=gethostbyname(name)。 if (NULL==change) { perror(gethostbyname error\n)。 exit(1)。 } return change。 } ssize_t recvline(int fd,void *buf) { int nbyte。 char c。 char *buff。 buff=(char*)buf。 while(1){ if ((nbyte=read(fd,amp。c,1))==1){ *buff++=c。 if (c==39。\n39。) break。} if (nbyte==0){ *buff=0。 return 0。} else if(nbyte==1amp。amp。errno!=EINTR) return 1。 } return 1。 } ssize_t writewj(int fd, void *buf,size_t len) { int nleft,nbyte。 nleft=len。 while(nleft){ 通信網(wǎng)絡(luò)設(shè)計(jì)課程設(shè)計(jì) 題號(hào): u1 設(shè)計(jì)日期 20200104 20200115 nbyte=write(fd,buf,len)。 if (nbyte0){ if(errno==EINTR) nbyte=0。 else return 1。} nleft=nbyte。 buf+=nbyte。 } return 1。 } int Read(int handle,void *buf,int nbyte) { int num。 while(1){ num=read(handle,buf,nbyte)。 if (num=0) return num。 if (num0amp。amp。errno!=EINTR){ perror(read error\n)。 exit(1)。}} }
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1