作为一名iOS攻城师,大学期间入门学习的C语言。和大多数学习一样,俺们都是用着老谭的教材长大的,开发环境vc++6.0(不要意思暴露年龄了)。因此对于linux,socket编程一类的基本上是无从涉及,后续有跟风学习了java,再后来学习python,这样和C语言应该是渐行渐远。应该是某种内心的逃避吧,年轻人嘛总是喜欢新事物,总是爱走捷径。
如果您甘心做个高级语言工程师,那也就算了,基本上用好OC和python在当今时代找份好的工作是没有问题了。然而一旦你想做些小而精的应用时,就会发现原来要学习的东西是很多了,有些坑是要不过去的。这次就是,近期在做网络相关的App,突然就发现成堆的优质代码都是用C写的,因此不得不把C再找回来。
书归正传,socket编程是制作网络工具的基础。幸好有本叫做 TCP/IP Socket C 编程书籍作为入门教材,本打算先敲一个hello word体验一下,发现有很多编程细节书中并没有涉及,下面我将自己排除过后的坑,给大家介绍一下,方便初学者入门。虽然学习这门技术的人应该不会很多。
一、准备工作
1、环境 ubuntu
2、开发语言 C
3、目标:
(1)简单TCP服务器,实现自动应答客户端请求
(2)简单TCP客户端,实现向服务端发送请求
二、程序代码
代码下载地址:http://cs.ecs.baylor.edu/~donahoo/practical/CSockets2/textcode.html
不过无论是按照教材和下载源码,通常都很难编译成功,因为书里面并没有告诉你如何编译这些源码。下面是我整理的代码
http://pan.baidu.com/s/1o8Fq6N4
三、编译程序
1、gcc tcpechoclient4.c -o tcpclient4
2. gcc tcpechoserver4.c -o tcpserver4
四、运行
(1)在一个命令行里面运行server
./tcpserver4 5000
(2)在另外一个里面运行client
./tcpclient4 127.0.0.1 "echo this" 5000
(3)运行效果
下面是命令行的输出结果,client 通过41136 端口联系服务器 5000
./tcpserver4 5000Handling client 127.0.0.1/41136
在客户端显示 下面信息,证明demo成功
Received: echo this