{"id":23032363,"url":"https://github.com/michaelfromyeg/cpsc317-tutorial10","last_synced_at":"2025-04-02T21:41:57.118Z","repository":{"id":63931469,"uuid":"570308636","full_name":"michaelfromyeg/cpsc317-tutorial10","owner":"michaelfromyeg","description":"C server programming tutorial; up-to-date for the 2022W1 edition of the course.","archived":false,"fork":false,"pushed_at":"2022-11-29T06:31:49.000Z","size":469,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-08T12:14:02.050Z","etag":null,"topics":["cpsc317","ftp","ftp-server","internet","networking","ubc"],"latest_commit_sha":null,"homepage":"https://www.cs.ubc.ca/course-section/cpsc-317-101-2021w","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michaelfromyeg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-11-24T21:26:24.000Z","updated_at":"2023-07-30T23:05:07.000Z","dependencies_parsed_at":"2023-01-14T15:00:50.072Z","dependency_job_id":null,"html_url":"https://github.com/michaelfromyeg/cpsc317-tutorial10","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelfromyeg%2Fcpsc317-tutorial10","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelfromyeg%2Fcpsc317-tutorial10/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelfromyeg%2Fcpsc317-tutorial10/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelfromyeg%2Fcpsc317-tutorial10/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michaelfromyeg","download_url":"https://codeload.github.com/michaelfromyeg/cpsc317-tutorial10/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246899625,"owners_count":20851893,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpsc317","ftp","ftp-server","internet","networking","ubc"],"created_at":"2024-12-15T15:52:30.836Z","updated_at":"2025-04-02T21:41:57.102Z","avatar_url":"https://github.com/michaelfromyeg.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CPSC 317 Tutorial 10: C Server Programming\n\nA tutorial on C Server programming for CPSC 317. Intended to support programming assignment 3, which consists of implementing either an SMTP mail client or FTP server.\n\n## About\n\nThe goals of this tutorial are to\n\n1. Gain familiarity with C\n2. Gain familiarity with writing server-side programs in C\n3. Understand what the FTP protocol is and why it is used\n\n## Exercises\n\n- Complete `strtok` exercise under corresponding directory\n- Complete the `enum` exercise, too\n\n## Resources\n\n- [Beej's Guide to Network Programming](https://beej.us/guide/bgnet)\n- [A guide to GNU `make`](https://michaelfromyeg.github.io/makefiles)\n- [ftp-server-tutorial.pdf](docs/ftp-server-tutorial.pdf)\n- [FTP (File Transfer Protocol)](https://youtube.com/watch?v=tOj8MSEIbfA)\n- [strtok()](https://tutorialspoint.com/c_standard_library/c_function_strtok.htm)\n- [POSIX thread (pthread) libraries](https://cs.cmu.edu/afs/cs/academic/class/15492-f07/www/pthreads.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelfromyeg%2Fcpsc317-tutorial10","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichaelfromyeg%2Fcpsc317-tutorial10","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelfromyeg%2Fcpsc317-tutorial10/lists"}