Linux系统编程(37)—— socket编程之UDP服务器与客户端

典型的UDP客户端/服务器通讯过程:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgMAAAG6CAYAAACV9kV3AAAgAElEQVR4AeydBbhkxdGGO8Hd3XaxRcLizi4LgcWDBQ0WLBBIkODkxwLBHkICCSHoQoAAwVk8sItbILi7u7vk/uct+CZ1mzNyZe6dWaqfZ6aturr6OzNd1Xp+0FG4FC4QCAQCgUAgEPgWAdTCD37wgz7Ho7/q7fOGtmCFP2xBmUKkQCAQCAQCgT5AQGNB+apShkCensdFL1/53fXFJ/y+R+AHxUOLmYG+xz1qDAQCgUCgJRBABaD85edC5emK535eLuLthUDMDLTX8wppA4FAIBDoVQQ0CyA/Zy5DQemiy33yMRDKXFfTa/Eq4x9pPUcgjIGeYxgcAoFAIBBoWwSqKWrfIG8QVKMnXQaCL0u4Vno1ftXK5Lwj3jsIhDHQOzgGl0AgEAgE2hKBRpVuGZ1X5GX5jQDS3XKN8A6axhGIPQONYxWUgUAgEAgEAoHAGInA2GNkq6JRgUAgEAgEAg0hwOj+k08+Sc8880yaYIIJ0lhjjZXee++9NOWUU6bZZpvNeLz00kvprbfeSuOMM47lDxw4MD377LPpq6++ShNPPHH69NNP04cffph++MMfGs3000+fpp122k7LA19//bXVQRnq+fjjj61ewjPMMEOaaqqpKvJqxiFmDSqQND0QxkDTIY4KAoFAIBBoXQRQuJ999lk64YQT0jXXXGObAH/0ox+lHXbYIc0666wm+JNPPpkOOeSQ9MILL6Stt946/eIXv0g33nhjOu2009L777+fxh577DTZZJOlL7/8Mr3zzjtmJCy00EJGu9Zaa1VOK1x++eXpxBNPNIOBeqeZZpr01FNPWVl47rTTTmZQUKk3BHLjgLjPx9DAiCGdD0aJd8ovS/vvf/9boS8L+7rgA29ft/Ipi1OefF9nK4c7I9bKkoZsgUAgEAgEAk1BgFH50ksvnZ577jn7rLnmmmnYsGEVxbbsssumJZZYwupeaaWVbBS/7rrrpgknnDA9/vjjZkzssssuaY899jAjAkPgsssuS2uvvXbaaqut0rvvvmsGw/Dhw20W4ZFHHrGZg1133TVtttlmifivf/3rdNxxx5kylyJF0ZY58n0ehoCUcRl9WRplcgcPFD5OMsgnrawM6bjcAPkmtX2+wxhon2cVkgYCgUAg0DQE5phjjgpvDIGJJprI4ijDcccdNy233HJmEMw000ymKFkGWHzxxS2MIbHBBhukDTfc0AyCSy65xGYZKHvmmWcm4ihvZhzgQzpGxU9+8pN0+OGHp0022cTSjj322IqS14gbIVDQlJGiVp43ADRil1IWLeW9saB0lRW96KTwqa/MqbzyPJ1kUF47+bFM0E5PK2QNBAKBQKBJCHz++ecVzqz/5+6jjz5KX3zxRacROHsFcOw5yN3KK6+c5pprrvTEE0+kK6+80mYIUMCqhzJS6tqbwLIBTuniyTIEfNjXwH6EwYMHm3HgFfm9996bkHGppZYy40VKHR7seZh00kltJoO9Dh988IG1Bb7sYVhsscXSm2++aUsWLHUMLPZEzD777FY9WNx2221pwIABadCgQTbDIbloy8svv2y0L774oi1/TDfddCabaNrFj5mBdnlSIWcgEAgEAk1EAAUs58M+LR8VK0+jbMXla6nh9ttvr4zuxduPolHkuO23394UKaNtlDSO/Qybbrpp2nLLLdO5555rRsVvf/vbygwCSxAsT+y///7mYyhcccUVlg/9qquuakr8lFNOsZmI+eefP1199dU2M4F8119/vdXJ7Af7GX7/+9/bZkjqhm6rYpnjz3/+c1phhRVsBoM9EhgUe++9d1pwwQXTRhttlE4//XTbbIkMOGSvhpURtOBXzAy04EMJkQKBQCAQ6E8E/KhayhsFTdhPi0vh+RG65MZAYFMh7vXXX7fNhd4AYAQODQr42muvTWussYYpfPjDl1E7jjyUOksI7C9Aed93332Wh6Gw+uqrpwcffDCNGjXKTkDMPffcab311rNR/jzzzJOefvppm7k444wzjC+8V1llFeP50EMPWT20d+qpp7aTEUOHDk3zzjtvGjlyZGXPw5FHHpn+7//+L/3tb39LM888s22mnHHGGW22AkwuvPBCk4dZBNpUhocRtPBXzAy08MMJ0QKBQCAQ6CsEpPSpzyt81Y9yJh1lJ1rRkeYd+Xy0jMDmw/HHH79SXrT333+/nUY4/vjjTdGON954luWNkeeff97S2HuAUcD0/c4772xpzADceeedthdhQDGNzzIDxxRZzrj44ott5L7aaqtZvexruOuuu9LDDz9sywJHH320Ke2zzz7bZL3pppsSpybY08AsAXsZaNfyyy9v+ydYSsBBzxIHJx/U/t/97ne2FEEZZMcYaDeDIGYG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w0HlqvmilS868VW81f0wBlr9CYV8gUAgEAh0EwGvoBTWaJl4PSdDAFoUqng8+uijaeTIkWmqqaayY3U33XRTmmaaadJhhx1mNCeddFJ66KGH0gILLGBxlPQaa6yRVlxxxfTmm2+ms846y/YtzDjjjOmll15KI0aMSJdddpldhkQ9KH+WC/bcc8+08cYbpx122CFhKGBAnHDCCWnqqae2+h5++OG01FJLGW9mDe699950//33p6uvvtoMinnnndfqpJ1Szly2NGjQoLTCCitYmtoEDUct33nnHTOA8ul+8suc+Covjyu91f0wBlr9CYV8gUAgEAh0EwGvmBTG9wqwFmsUM0qW0bwv89hjjyUU+Y9//GMbraOcn3jiCWN188032zT8gQcemJZddllTrKeffno65phjLM4U/SOPPJKOO+44MyTef//9dPHFF9syAvVxBwK8uAwJY2CzzTarnOM/5ZRTbEaANOQad9xx08knn2xn+hnVr7rqqpa23nrrma82+zYyozDDDDNYPumehmOC3BhI3Zrp8GXLwh4X8vN4WZlWTPvf3EkrShcyBQKBQCAQCHQbARSTd8RRuI066DWtLyOCsvPMM4/drMcthldddZWts88555zGllmDTTbZJA0ZMsQMBRTshhtuaMr10ksvTRgSyy+/vE3RM/pmGv/MM8+sXIDEbMQFF1yQXnnlFbsYSfKioO+55x6bjWDWgM1+jPJZ9//0009tpoG6kJdrgCkHfy93tfYLp9xvFKdadOIpGi+P0lrBj5mBVngKIUMgEAgEAk1AwI96YU9cywSNVCfFJT7yUbbrr79+Yr2fNfhbbrkljRo1Kq2++uqWxs589hRMMskkVg2nBNhfwDT8nXfemZ5++mlLR1GisJlZYN8Ajviuu+6aBgwYkP7whz+kI4880mYhmDFgtM4U/7rrrmu0GAjMEpCHo22cFMDJiNANgaQhPzyQxTu1i7RZZ5214VkB6FU292UEKB3aVnZhDLTy0wnZAoFAIBDoAQIoJK+M8ng91lJoOR2K//nnn7d1d0bn0C222GJGxuY9Ru0sDaDQMRZY2+f64yWWWMIUMbv2zz//fJuqR2m/8MILabvttjOebO7DqFhmmWVsf8A666yTdtllF9vwt9pqq6Vbb73VZhW0fIGyZzkCg4INhexBgDdKnyWBOeaYIy266KKV6XtmEjgx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SjfddJMdNdtoo42sM37ttdfSwIED09NPP51OP/10U+Bbb711mmqqqdKzzz5rip8rbldZZRV78Q2KYoIJJhBbMxCYIShTABChnFBS5LNsQB1rrrmmXZX7+uuv2z36I0eOTE888UTacsst0+yzz268kfc///lPevjhh9Nss82Whg4danyuv5FpzckAACAASURBVP76dPXVV5t8P/vZz9L000+fWK5A3pdeeimdc8456Z133kk77bRTmmaaadKnn36annvuuXThhRcmRs0rrrii8Rc+8i2x+MqV3Ntvv211DxkyxOr68ssvDbdqCk58GvHzuilDGk7KL49bZpUvcKbcSiutZG3m+f35z39OyMysDr7q9HyVBlsfrlJNJxk9H09flu7TVA8+1yXfeOON6YEHHkh33XVXmnHGGb8jh+h9Hf0ZDmOgP9GPugOBQKAuAlIi8lUARcFu8xNPPDEddNBBiVE9SpgPU/kYBChOjAMUK1P77A1Agf7lL39JV155pd19Dx/NAqhz18hVdeGrfvImnnhiix944IE26sS4OOSQQ2y/wc4775wefPBBk+vyyy9P1157rSlxNr7NO++8aZFFFkn77bdfuuCCC2x5gtmGY445Jv3iF7+wEfCTTz5pin777bc3JYIh8O9//ztdc8016ayzzrL7+FEu//rXv9Lvf//79Kc//Sn96le/qsgnOWkLH7VF6SjQRx99NJ166qlp7rnnrtCAwVhjjWXGA7QqizEhR7ryyFccGtHj46iXdNErLnmUJ94qp7jngQGGgcbzRE5fN2GVVTrtgI66xcc/Y/JxKgcd8khGlfP5ViD7UjnRw1eGCoYhRh6/P56XaODJRzhkLPstGsZAv0EfFQcCgUBPEfjpT3+a/va3v1mHSwfLVPKZZ56ZNt9887ToooummWaaKa2//vo20j733HPTeuutZwqXc+pbFevPKHN/xz0dtjptZEMRM0qn42bKlxHfhBNOaMoUfoxY4UmZlVde2YwB+LHvYIsttkibbLJJeuWVVyqj2r333tto99prr7THHnukq666KiHLcsstZ7MW1PnII4+kk046yWSnHSgS6HkpzyWXXGJtZU8Dsw6kYVRgDHiH4suVDTKCET6javhOOeWUvliXw+JHQR+WYq3FEHqcl6sWPXkYbrnzdXkZoMvjpHl64j11ZXXAc+qpp+4p6z4tHxsI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K7Ha15jpDwMEgykXaMd3yO15ghxdWgZ/YaM69am8x82LgK6VYq7lvffeG79rf+SRR0ZvEZ9MVeAb89yXeK7UhnsXrxVbTbRXudoUxdCecsop4dprr42GhOjKthe9x46AI9BYBGoyBqRUEbmeP3Zc0hNPPHEXJHBvsto466yz4ve0hw0bFh566KHoDkcpa7XTpVFBJnV533nnnVHhrrrqqtHw4HvPAwcOjK3vu+++cNVVV4XFFlssrLzyymGttdaKfZ144onRI8Arevm+AG1XWmmluBq/++67o2Hw+OOPx/ymm24a64cPHx4VM9/cZtJcZpllosdjww03jAodjwOBuj/84Q/RiNh4443DGmusEbbYYoso02233dapqKEDF95XkAvUszfMJN/TwPUFY77drQD/ZgvIaf+QT/emLeferVRuaZW297vGrTrxUrntt1pZEa1tV0ua64KsxBihhx56aHxlN9+Hf+yxx+I35fn+PIH8HXfcES677LKw1VZbxTrK+b48hijfcleAF2/85B60515UT598j/3KK6+MnqppppkmVkFb7V5J8SNv+1Ba10B5OkjbSh5bJ2+crSvLw7bxdPMgoGta6fo3j7StJ0mpbQJ+RPwozznnnLhymGKKKeIPF2XBBeLioHChk+KlzE4INq+LST2vviXPRGQDfC2vBx98ML4eFxra6JFE2yaXpg/1zRjgufnmmwe8A2eeeWZ0/7MqHzJkSBwjBgcrdv6YCGmDAaDn7jEE+PKglCSu/o8++ihOokyMKHwC7TAK6BuPh4IwkSwqf+qpp8K2224bXbS0AWOMlLvuuitizHjVttLKn+2FWgwlYSM5FNM/WxZ4aQi8UnmGGWaI46EP/vg8MwYN44MP5yR0zcSHcgXJr7zqFFOf0oi2KM7Rq0wxbcuk0z5ow3VSe+RkfJKXcqUVR2JTrn6pJ23pVKY23YnFQ7jvvPPO0eu01157RcN56623jspccuDK32CDDaKhu95664UzzjgjGg94BjAE+HYG5064pmx3YXxyWJXfJ54re9/C88Ybb4zGK/cBv3/acB/MOuus0aPHNhh5+OC5Sj/UJfnhBe/03tW4LG7CSWW5dnZ+UB/wYvvviy++CPPMM0+8h8XL4+ZGAIOULVY+9obRqWva3FK3lnSljAF+oEwUDzzwQNwfR0GwatAEYy+MyohVTqygH66s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JS5zUbrfk7d0BBwBR6B/ITDZZJOFNddcM3oH5p9//k4vQTOOspph04wyS6bSryNu5UFqsI2K+ewmwQ2BRl0B79cRcARaGYFtt902fpNgnnnmaeVhNLXspYwBRoAic2XWvWvphlT3cPNWjoAj4AiAwHLLLReWX375pgMDnWg958ojqE03neAZgUptE9AuVWhuGGTQrFKUYliF3KsdAUfAEXAEOhBA3+BhbTa9Yw0BLpSd4226FS5iaWOg1QfaDBej2W7kZsDEZXAEHAFHoBoCOm/VjAq2GWWqhmeuviZjwDJwxWbR8LQj4Ag4Ao5AbyGAvrE6J833Vr/txLcmY8BejHYCycfqCDgCjoAj0PcISOcQjzfeT0fcmskYsDLyaeVWDaWMAesG0cBbdcAutyPgCDgCjkBXBPTEky21c3015fuf//wnNoXuv//9r2XTWZ4WWv5pnfLoHuj0eLbKc2WqI67EW/KJRnnbPpcuokfGf/3rX2HTTTcNd955Z+xbtDk+zVpWyhhAeAbHoGUYKG7WgblcjoAj4Ag4AuUQkLL99NNPA38EO8ejMMl/9dVXnQwpg5bVsFbt0PzP//xP+Prrr8P7778frJHw3Xffhc8++yzWWf7w/Pjjj8O3337byZv2n3/+efyzcoiAPgjwtIbMN998E7744osusqO7kOOjjz4K1Iufja3ytmnGhmzII3r6hs8nn3zS2fcHH3wQrrjiikBMEG3MtMi/n/wuFQSWIQCJgLdlFZp6lSPgCDgCjkATI3DZZZeF888/P6y99tph5plnDrfcckt4++23w4knnhgmn3zycOihhwY+J7zYYouFm266Key9996xHh0wySSThGuuuSaO7sgjj4xK97777ovK86WXXorGwq677hooe++998Liiy8ebr311shXK+mpppoqGhTQ7LDDDuHFF1+MfOjzqquuCksssURYbbXVoscBo+OFF14I++67bxg8eHCYaaaZwg033BAOOuig8Oabb4bZZpstvPHGG+Huu+8Oe+yxR5h99tnDM888Ez788MMoI/I/+uij4Y9//GP461//GuOdd945rLrqquGSSy4Jf/7znyOvhRdeONxxxx3h9ddfD0suuWS47rrrwpRTThlGjRoVV/+TTjpp+NnPfhbuv//+sP3220eZwWPMmDHxdcm8KbHVDIJSngE7KFmQTXxvu2iOgCPg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3XXX8Kc//alz0lEdvNQHh9f4NO3pp58errvuujLdOE0PEJACUJyyKiqHTtfMtqFMbYrqLb34iFaxaORNsuWkZ5pppvCLX/wizD333OH999+P5wM4qX/KKadEo1MyVOIPHz09of6IL7nkkvgiIx5XVFhggQXiOYrXXnutc3zU2X5EW6bMjkftGhUjL3+VZCr9NAGDEMNGDahV+7WWb6WL0arjc7mbFwE7aWkyUMzLW/gC3GyzzRYHoPJaRmPvZ54FR8m/8sornSxsvQq/++67sNRSS4UVVlgh/PnPfw7Dhw8P00wzTdXJSu09Lo8A+OsaKE5bF5VDp/sHGnt/cDjutNNOi651lC0ufb4wqI8K8T6Aiy66KLz77rtxRb/SSiuFlVdeOdKfddZZ8VG+SSaZJHqT3n777bD++uvH9hgGL730Ujj33HOjEp9hhhmiguZkPvPoPffcE66++upAG1byPHK4ySabxPsY+ZDrxBNPjHwxHHjpD98ymHTSSTuHzRYVdDvvvHMnNlTydMVyyy0XHwW0Y83hkyvr7ODHhLBLyxuRLyNvtz0DzTTQRoCrPrlBpexVlsY8e8pqiGdZbZBFbMs83V4IcO8wmebuIX5jKre/N8rSvFATPXn4QpdOBOTZH8UY0GteaWfbip+NVZ/rmzJWckOGDOlcif3zn/8Mt99+eyAmXH/99WHvvfeOkzgybLnllvF3IePBymn7sDL0dRo59EffKQbUCTvRqczmi9K9PR6Lqfri8bzuzD2W1x133BEVLoqYzwl//fXX4c4774xdsA8/evTowAp72223Deuss0648MILw7333humnXbawAqcNyA+9dRT4de//nXgdcO45zlLglExZsyY+Mgjb+4Dt9///vfho48+ivcxtHyrAEPyl7/8ZVhjjTWiIUnHyLfPPvuE119/PfLFq3DfffeFww47rMvv5csvv4zehllnnVWQxJi+MBrYJtCTAF0IqmSEj2KR61FD5alPaVRX75gxoXd031r+6T1Q2jMAU4IGodgyb8c0gOaABgtubixXVkJYqcTQphehHXHzMf+AQNG9gLL+4osvgiYsfm/8Bm2cYpjeW0wCTGrqw/5mb7nllviWNBkDquM+JWC8Etj/5z7Ge8BE+c4778T9Wu5rXmfL6myhhRaKK0KM3skmmyy24995550XWAXedtttUXbedgefwYMH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*XpaNNNVpbT5qAzAra9tB4RKP6otjyFU2uTHVpXI02lQPvCzhTrjrF4p3mVe6xI+AIOAKOQGsh0DLGgJQSShQlJaVqFZJN6zLkylRnY9HBX2nq33///XDPPfdEl/nw4cMDjwfaestD6bResqqeGJqUztZbOb744ovwzjvvhFlnnTWel4COsldeeSUMHjx4HD60JaT803wk6ving4PKE+dktjJZWk87Ao6AI+AItDYCLbVN0FtQW08DClPKFCX53XffxfMJjz/+eLj77rujCLaeFbQN1PH+AwXrFaBMfYmHYups2iruK664IlxyySWdbaHlzMTvf//78NRTT5HttYBMksvK1GsdOmNHwBFwBByBPkeg6T0DKKKcEpKCqgdi8P/ss8/i6psDijytwHcFiGeeeeaw5ZZbhkceeSQ+akd/kofVM39vv/12+Oijj2L53HPP3eUtg99880149dVXIy/OOsw000xRZPF49913w1dffRXbzjDDDJ3P9EPEGGl/3333hVVWWSVMPPHEsS3/pp122jBw4MB44n+hhRaK5RYr8e9s4AlHwBFwBBwBR6AAgaY3BlKlJiMgLS8YX9ViVu4ffvhhOPDAA6MinnLKKcNjjz0WlllmmbDLLruESSedNPKYYIIJuih5Mb7sssvCtddeGxZYYIHw3nvvRaUPL4wJjICzzz47GgzIe8MNN4S11lor/Pa3v40eBzwNPL6HAQEt2wD77rtvZC1D44477gjffvttl9caQ4DRsvrqq4djjz02fPLJJwG564WJxkYMT/G1xoal8bQj4Ag4Ao5AayPQ9MZAbysglO6YMWPCnHPOGfbcc8/4pMKJJ54Y3njjjS4H/2SE2Mt91113hVNPPTXstttuYcMNNwwff/xxOOCAA8Lo0aNj+fnnnx9fnUyMMYEXgP4IH3zwQbj99tvD2muvHUaOHBm9CxgJTz75ZFh00UU7u3n99dfjS4swFNKAwYFR8MQTT4Tllluusxrl3du4dXbmCUfAEXAEHIGWR6DpjQGtSlOki8pTump5lP5NN90U2JfXI4s777xzeOuttzrzMgS0/y9F+8ADD4Ttt98+bLTRRnH1jHLGoNhuu+3Cs88+G37+85/Hvf6DDz44ehjgv/jii0dF/eKLL4YXXnghTDbZZOHRRx+NWwBsF+AhwBigLwwHziSo33Qs1HMGwZ5REE298GG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" alt="" />

编写UDP Client程序的步骤

1、初始化sockaddr_in结构的变量,并赋值。这里使用“8888”作为连接的服务程序的端口,从命令行参数读取IP地址,并且判断IP地址是否符合要求。

2、使用socket()来建立一个UDPsocket,第二个参数为SOCK_DGRAM。

3、使用connect()来建立与服务程序的连接。与TCP协议不同,UDP的connect()并没有与服务程序三次握手。上面说了UDP是非连接的,实际上也可以是连接的。使用连接的UDP,kernel可以直接返回错误信息给用户程序,从而避免由于没有接收到数据而导致调用recvfrom()一直等待下去,看上去好像客户程序没有反应一样。

4、向服务程序发送数据,因为使用连接的UDP,所以使用write()来替代sendto()。这里的数据直接从标准输入读取用户输入。

5、接收服务程序发回的数据,同样使用read()来替代recvfrom()。

6、处理接收到的数据,这里是直接输出到标准输出上。

以下是简单的UDP服务器和客户端程序。

/* server.c */
#include <stdio.h>
#include <string.h>
#include <netinet/in.h>
#include "wrap.h" #define MAXLINE 80
#define SERV_PORT 8000 int main(void)
{
structsockaddr_in servaddr, cliaddr;
socklen_tcliaddr_len;
intsockfd;
charbuf[MAXLINE];
charstr[INET_ADDRSTRLEN];
inti, n; sockfd= Socket(AF_INET, SOCK_DGRAM, 0); bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family= AF_INET;
servaddr.sin_addr.s_addr= htonl(INADDR_ANY);
servaddr.sin_port= htons(SERV_PORT); Bind(sockfd,(struct sockaddr *)&servaddr, sizeof(servaddr)); printf("Acceptingconnections ...\n");
while(1) {
cliaddr_len= sizeof(cliaddr);
n= recvfrom(sockfd, buf, MAXLINE, 0, (struct sockaddr *)&cliaddr,&cliaddr_len);
if(n == -1)
perr_exit("recvfromerror");
printf("receivedfrom %s at PORT %d\n",
inet_ntop(AF_INET,&cliaddr.sin_addr, str, sizeof(str)),
ntohs(cliaddr.sin_port)); for(i = 0; i < n; i++)
buf[i]= toupper(buf[i]);
n= sendto(sockfd, buf, n, 0, (struct sockaddr *)&cliaddr, sizeof(cliaddr));
if(n == -1)
perr_exit("sendtoerror");
}
}

/* client.c */
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <netinet/in.h>
#include "wrap.h" #define MAXLINE 80
#define SERV_PORT 8000 int main(int argc, char *argv[])
{
structsockaddr_in servaddr;
intsockfd, n;
charbuf[MAXLINE];
charstr[INET_ADDRSTRLEN];
socklen_tservaddr_len; sockfd= Socket(AF_INET, SOCK_DGRAM, 0); bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family= AF_INET;
inet_pton(AF_INET,"127.0.0.1", &servaddr.sin_addr);
servaddr.sin_port= htons(SERV_PORT); while(fgets(buf, MAXLINE, stdin) != NULL) {
n= sendto(sockfd, buf, strlen(buf), 0, (struct sockaddr *)&servaddr,sizeof(servaddr));
if(n == -1)
perr_exit("sendtoerror"); n= recvfrom(sockfd, buf, MAXLINE, 0, NULL, 0);
if(n == -1)
perr_exit("recvfromerror"); Write(STDOUT_FILENO,buf, n);
} Close(sockfd);
return0;
}

由于UDP不需要维护连接,程序逻辑简单了很多,但是UDP协议是不可靠的,实际上有很多保证通讯可靠性的机制需要在应用层实现。

编译运行server,在两个终端里各开一个client与server交互,看看server是否具有并发服务的能力。用Ctrl+C关闭server,然后再运行server,看此时client还能否和server联系上。和前面TCP程序的运行结果相比较,体会无连接的含义。

上一篇:从debian9、ubuntu18.04的deb包依赖来看,似乎不是那么好!!


下一篇:协同过滤推荐算法总结