C程序在 Linux系統
編輯器: mcedit;vi;emacs
編譯: cc;gcc;g++
運行: ./a.out (編譯輸出的默認文件)
一般是編輯Makefile文件,用make編譯工程文件
Makefile 規則通用形式:
target :dependency dependency [....]
command
command
[....]
#一個簡單的Makefile:
include ../Make.defines
PROGS = tcpcli tcpserv
all: ${PROGS}
tcpcli: tcpcli.o
${CC} ${CFLAGS} -o $@ tcpcli01.o ${LIBS}
tcpserv: tcpserv.o str_echo.o sigchldwaitpid.o
${CC} ${CFLAGS} -o $@ tcpserv.o str_echo.o sigchldwaitpid.o ${LIBS}
clean:
rm -f ${PROGS} ${CLEANFILES}
#注重:每一個命令的第一個字符必須是制表符,不要用8個空格代替。
#有些編輯器會友好的將制表符轉換8個空格,導致編譯出錯(Missing Seprarator)。
--------------------------------------------------------------------------------
簡單的時間/日期客戶程序
--------------------------------------------------------------------------------
程序結構
頭文件
命令行參數
創建TCP套接口
指定服務器IP地址和端口
建立與服務器的連接
讀入並輸出服務器的響應
結束程序
--------------------------------------------------------------------------------
源程序示例:
#include "unp.h"
int main(int argc, char **argv)
{
int sockfd,n;
strUCt sockaddr-in servaddr;
char recvline[MAXLINE +1];
sockfd=socket(AF-INET, SOCK-STREAM, 0);
bzero(&servaddr,sizeof(servaddr));
servaddr.sin-family = AF-INET;
servaddr.sin-port=htons(13);
inet_pton(AF-INET, argv[1], &servaddr.sin_addr);
connect(sockfd,(SA*) &servaddr, sizeof(servaddr));
n=read(sockfd, recvline, MAXLINE);
fputs(recvline,stdout);
exit(0);
}