使用TCP連線提交TXT文字作業

2021-09-27 03:20:12 字數 2364 閱讀 1552

①搭建好環境(ubuntu、gcc)

②主機內寫好作業

③主機寫好程式**(在虛擬機器中操作也行,在主機中寫好再拖拽到虛擬機器中共享依賴於你已經裝好vmwaretools)

③進入虛擬機器系統開啟終端

nano task1.c //nano新建**檔案

//將**複製到到檔案內ctrl+o 儲存

回到檔案內可看到已經生成的檔案task1.c

④同理nano 命令生成ch1task.txt檔案用於存放作業內容並儲存

⑤新建終端首先編譯task1.c

gcc task1.c -o task1 //編譯生成可執行task1檔案

⑥執行task1檔案

./task1 ip位址 埠號  // ip位址和埠號均為接收方所提供

成功!

//程式**:

#include #include #include #include //socket函式

#include #include #include #include #include #include #include #include //使用basename(),從路徑中獲取檔名及字尾

int main(int argc, char * ar**)//兩個引數分別代表ip位址和埠號

int port = atoi(ar**[2]);

int tcp_socket = socket(af_inet, sock_stream, 0);//建立tcp通訊socket

if (tcp_socket == -1)//建立失敗

struct sockaddr_in dest_addr = ;

dest_addr.sin_family = af_inet;

dest_addr.sin_port = htons(port);

dest_addr.sin_addr.s_addr = inet_addr(ar**[1]);

int ret = -1;

ret = connect(tcp_socket, (struct sockaddr *)&dest_addr, sizeof(dest_addr));

if(ret != 0)

printf("\nconnect succeed!\n");

char file_path[128] = ;//傳輸檔案路徑

char file_info[2048] = ;//傳輸檔案資訊

char buf[1024] = ;

printf("請輸入檔案路徑: ");

scanf("%s", file_path);

char file_name[128] = ;

strncpy(file_name, basename(file_path), sizeof(file_name));//讀取檔案資訊並從中獲得檔案字尾

int fd = open(file_path, o_rdwr);

if (fd == -1)

int len = lseek(fd, 0, seek_end);

lseek(fd, 0, seek_set);

sprintf(file_info, "%d", len);//獲取檔案資訊

strcpy(file_info + 16, file_name); //copy檔案

write(tcp_socket, file_info, 144);

int send_len = 0;

while (1)

write(tcp_socket, buf, ret);

send_len += ret; //上傳檔案的百分比

printf("uploading %.2f%%\n", (float)send_len/len * 100);

} close(fd); // 關閉檔案

close(tcp_socket);//關閉通訊socket

return 0;

}

使用套接字建立連線 TCP

int socket int domain,int type,int protocol domain pf inet,pf inet6以及pf local等,表示什麼型別的套接字 type sock stream 表示位元組流,tcp sock dgram 表示資料報,udp sock raw 表示...

C 資料庫連線設定並把設定寫入到txt文字中

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...

NB模組TCP連線不穩定原因及使用詳解

使用nb模組建立tcp連線傳送資料,受蜂窩網路波動的影響,tcp連線不穩定,時常容易斷開,但是模組存在無法感知連線狀態的情況,導致較長時間的資料中斷 模組沒有上報斷開連線指示,傳送資料沒有報錯,但是資料沒有傳送到伺服器 以下對nb模組tcp udp的使用做總結,並針對tcp資料中斷的情況給出了解決方...